Я использовал аутентификацию Auth :: Guard, но получил ошибку при преобразовании, вот мой код в файле контроллера:
const ALL_GUARD = ['admin'];
public function guard()
{
return Auth::guard('admin');
}
function login(Request $request)
{
$dataLogin = $request->only(['email', 'password']);
// dd($dataLogin);
// error here
foreach (self::ALL_GUARD as $guard) {
if (Auth::guard('admin')->attempt($dataLogin)) {
return redirect('/'.$guard.'/home');
}
}
// }
return redirect('/login');
}
public function showLoginForm()
{
return view('auth.login');
}
и файл модели:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class UserModel extends Authenticatable
{
use Notifiable;
protected $guard = 'admin';
protected $table = ['users','post'];
protected $fillable = ['name','email','password'];
protected $hidden = ['password', 'remember_token',];
}
Ошибка:
ErrorException (E_NOTICE)
Array to string conversion
Что я сделал не так? Он где-то был неисправен, пожалуйста, помогите мне! Спасибо!






в модели должно быть одно имя таблицы. пожалуйста, удалите массив и сделайте его строкой, или вы можете проверить документацию модели Laravel для получения дополнительных разъяснений.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class UserModel extends Authenticatable
{
use Notifiable;
protected $guard = 'admin';
protected $table = 'users'; //change this variable type
protected $fillable = ['name','email','password'];
protected $hidden = ['password', 'remember_token',];
}
или предоставьте правильное описание ошибки.
Поскольку Модель специфична для одной таблицы, по какой-то причине у вас есть
$table, установленный как массив ... где в документации вы видели, что эта переменная установлена как массив? также вы должны предоставить дополнительную информацию об ошибках, например, трассировку стека