我正在尝试使用一对一关系存储电话记录。
public function store(Request $request) {
$user= auth()->user();
$phone= new Phone();
$phone->cellno= request('cellno');
$user->phone()->save($phone);
return redirect('/phones');
}
documentation中指示了检索身份验证用户的推荐方法。
行:
$user = auth()->user();
应该是:
$user = Auth::user();
并且不要忘记使用Auth类:
use Illuminate\Support\Facades\Auth;
说明:
auth()
或user()
方法在您当前的上下文中不可用,所以这就是为什么如果没有找到$user
就是null
的原因。
编辑:
如果未对任何用户进行身份验证,身份验证也将返回null,您必须遵循以下提供的文档来实现它。然后,您可以secure your Routes。
基本上,您有两个选择:
a)在路由说明中添加中间件:
Route::resource('phones' , 'PhoneController')->->middleware('auth');
b)将中间件添加到类的构造中(建议用于控制器)
public function __construct()
{
$this->middleware('auth');
}
此后,如果没有经过身份验证的用户,则访问将受到限制。