我必须实现记住我的功能,所以我必须将$remember
的值作为Auth:attempt();
函数中的第二个参数传递。但问题是,当我使用此语法在$remember
中设置值时,它会显示语法错误
$remember = isset($request->input('remember')) ? true : false;
----------------------------------------------^//Expected: variable
但是当我使用这种语法时,它不会给出任何错误
$remember = isset($request->remember) ? true : false;
答案 0 :(得分:1)
答案 1 :(得分:1)
has
的使用方式如下:
$remember = $request->has('remember'); //return true if the remember is selected :)
对于您的问题,上述两种语法之间的区别是什么:
这是因为isset
是一种语言结构,而不是一种真正的功能。它在docs中提到:
警告强>
isset()仅适用于变量,因为传递任何其他内容都会产生 在解析错误。要检查是否设置了常量,请使用defined()函数。
答案 2 :(得分:0)
试试这个
$r = $request->input('remember');
$remember = isset($r)?true:false;
答案 3 :(得分:0)
请求类已经有一个内置方法来检查是否设置了参数:
if ($request->has('remember')) {
// remember is set
} else {
// remember is not set
}
但是有一种更好的方法来做你想要实现的目标。请求类也有一个方法get
,它接受键作为第一个参数,默认值作为第二个参数(如果未设置键则返回)
所以你可以这样写:
Auth::attempt([...], $request->get('remember', false));