我正在尝试保存user_id与关系我创建了用户和业务之间的关系,用户可以在其中添加许多关系,但它显示此错误
My Controller
$fieldsValidation = [
'business_name' => 'required',
'business_url' => 'required',
'is_available' => 'required',
];
$validator = Validator::make($request->all(), $fieldsValidation);
if ($validator->fails()) {
$resultArray = [
'status' => 0,
'message' => $validator->errors()->first(),
'dataArray' => []
];
} else {
$business = new Business($request->all());
Auth::user()->addBusiness()->save($business);
$resultArray = ['status' => 1, 'message' => 'Business Name added successfully!', 'dataArray' => $business];
}
return Response::json($resultArray, 200);
我的用户模型
public function addBusiness()
{
return $this->hasMany('App\Business','user_id','id');
}
My Business Model
public function user()
{
return $this->belongsTo('App\User','user_id','id');
}
任何帮助都将不胜感激
答案 0 :(得分:1)
仅当addBusiness()
不是Auth::user()
时,您才可以尝试拨打null
方法。
试试这个:
if(Auth::check()){
Auth::user()->addBusiness()->save($business);
} else {
//user not logged in do something else
}
答案 1 :(得分:0)
您的错误消息显示您尝试在null上调用addBusiness()
。我看到您拨打addBusiness()
的唯一地方是Auth::user()->addBusiness()
。
这意味着Auth::user()
返回null。
Auth::user()
将返回null。如果您所在的路由未受正确的auth
中间件保护并且您以非默认方式登录,它也将返回null守护。如果您使用的是未受保护的路线并且您使用非默认警卫(例如api
警卫)登录,则可以使用$request->user('api')
或auth()->guard('api')->user()
来吸引用户。