※モデルファイルをapp/Models内に移動しています。
※参考【Laravel】モデルのディレクトリ構成変更についてのメモ
②ログイン機能を対応してみる
1)ログイン機能の有効化
下記コマンドをプロジェクトで実行
php artisan make:auth
2)User.phpの変更
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
//use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Vinelab\NeoEloquent\Eloquent\Model as NeoEloquent;
class User extends NeoEloquent implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Notifiable,Authenticatable, Authorizable, CanResetPassword;
protected $label = 'User';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
【説明】
継承元の変更
元々UserクラスはLaravelフレームワークのAuthenticatableを継承していますが、こちらがNeoEloquentから派生していないため、
こちらで書き直しています。
モデルクラスがNeoEloquentから派生していない場合はエラーが発生します。
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;use Vinelab\NeoEloquent\Eloquent\Model as NeoEloquent;
class User extends NeoEloquent implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
ラベルの設定
こちらを設定することで挿入されたデータのラベルがUserになります。
設定しない場合はAppModelsUserになりました。
protected $label = 'User';