我有一个类User
<?php
namespace App;
class User extends \Cartalyst\Sentinel\Users\EloquentUser
{
public function chalets(){
return $this->hasMany('App\Chalet');
}
}
我还要上木屋课
class Chalet extends Model
{
protected $fillable = [
'name', 'description',
];
public function user(){
return $this->belongsTo('App\User');
}
}
我有方法添加chalet由用户:
public function postCreateChalet(Request $request){
$chalet = new Chalet([
'name' => $request->input('name'),
'description' => $request->input('description')
]);
Sentinel::getUserRepository()->setModel('App\User');
$user = Sentinel::getUser();
$user->chalets()->save($chalet);
return ('chalet has created');
}
它给予我一个错误:
BadMethodCallException
Call to undefined method Cartalyst\Sentinel\Users\EloquentUser::chalets()
扩展User类是否正确?
我一直在寻找扩展User类的方法,发现了这个问题:但Model Inheritance in Laravel并没有帮到我。
我用的是Laravel 5.7
2条答案
按热度按时间fgw7neuy1#
您收到的异常表明Sentinel仍在引用默认库存Sentinel的EloquentUser模型。请确保您使用发布的Sentinel配置指向您的扩展用户模型。
1.运行以下命令
1.打开"config\cartalyst.sentinel.php"中的已发布配置文件
1.从以下内容修改:
'users' => [ 'model' => 'Cartalyst\Sentinel\Users\EloquentUser', ],
至:'users' => [ 'model' => 'App\User', ],
有关详细信息,请参阅https://github.com/cartalyst/sentinel/wiki/Extending-Sentinel
通过config配置后,您将不需要下面的行:
yhxst69z2#
我知道这是一个老线索,但对我来说,我需要添加的特点:
Sentinel正在使用的User类(如上所述)。