ユーザーの登録時に問題が発生しました。ユーザーをテーブル users に保存した後、このユーザーにロールを割り当てようとしましたが、次のエラーが表示されました。
クラス名は有効なオブジェクトまたは文字列でなければなりません。
私のコードは
(App\Http\Controllers\auth\AuthController.php)
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Role;
use Validator;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Controller\Auth;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Http\Request;
class AuthController extends Controller
{
public function postRegister(Request $request){
$this->validate($request,[
'name' => 'required|min:4|max:255|unique:users',
'email'=>'required|email|max:255|unique:users',
'password'=>'required|confirmed|min:3'
]);
$user_data = array(
//$field => $request->input('login'),
'name'=> $request->input('name'),
'email' => $request->input('email'),
'password' => $request->input('password')
);
$user=User::create([
'name'=>$user_data['name'],
'email'=>$user_data['email'],
'password'=>bcrypt($user_data['password']),
'active'=>1
]);
echo $user;
$role = Role::where('name','=','admin')->first();
//$user->attachRole($role->id);
$user->roles()->attach($role->id);
//return redirect('auth/register')->with('message','store');
}
}
これecho
を$user
印刷してください:
{"name":"bbbbbvq","email":"bb@bbv.comq","active":1,"updated_at":"2016-03-03 19:07:24","created_at":"2016 -03-03 19:07:24"、"id":32}
entrustZizaco\Entrust\src\config\config.php
を myにコピーし、次の方法proyect\app\config\entrust.php
でファイルを変更しました。test\vendor\zizaco\entrust\src\Entrust\EntrustServiceProvider.php
private function registerCommands()
{
/*
$this->app->bindShared('command.entrust.migration', function ($app) {
return new MigrationCommand();
});
$this->app->bindShared('command.entrust.classes', function ($app) {
return new ClassCreatorCommand();
});*/
$this->app->singleton('command.entrust.migration', function ($app) {
return new MigrationCommand();
});
$this->app->singleton('command.entrust.classes', function ($app) {
return new ClassCreatorCommand();
});
}