Php 即使条件为false Laravel 5.2,Else零件也不执行
我正在开发一个Web应用程序,在其中搜索学生结果。通过输入学生卷号,我从数据库中获取他的数据。我有学生模型和学生控制器,我从表单和字段Php 即使条件为false Laravel 5.2,Else零件也不执行,php,laravel,laravel-5.1,laravel-5.2,Php,Laravel,Laravel 5.1,Laravel 5.2,我正在开发一个Web应用程序,在其中搜索学生结果。通过输入学生卷号,我从数据库中获取他的数据。我有学生模型和学生控制器,我从表单和字段name=keyword获取输入。我正在比较$rollno和关键字,它工作得很好,但是当我输入roll no 0时,else部分只是执行,没有零。无论我输入什么,它都会显示空视图,而else部分不执行 搜索功能位于学生控制器中 public function search() { $keyword = Input::get(
name=keyword
获取输入。我正在比较$rollno和关键字,它工作得很好,但是当我输入roll no 0
时,else部分只是执行,没有零。无论我输入什么,它都会显示空视图,而else部分不执行
搜索功能位于学生控制器中
public function search()
{
$keyword = Input::get('keyword');
$rollno = Student::find($keyword);
if($rollno = $keyword){
return View::make('results.single')
->with('search',Student::where('rollno',$keyword)
->get())->with('keyword',$keyword);
}else{
return 'Nothing Found';
}
}
更新:
感谢Alex澄清了这个问题,不过我将搜索功能改为下面的,效果非常好
public function search()
{
$keyword = Input::get('keyword');
$row = Student::where('rollno',$keyword)->first();
$rollno = $row['rollno'];
if($keyword == $rollno){
return View::make('results.single')
->with('search',Student::where('rollno',$keyword)
->get())->with('keyword',$keyword);
}else{
return 'Nothing Found';
}
}
首先,您尝试将字符串与对象进行比较。您应该添加
->keywordRow
,只需将keywordRow
更改为真实的
其次,使用=
或==
(更好)运算符进行比较<代码>=是一个
如果您的情况是:
if($rollno=$keyword)
这意味着您正在将
$keyword
分配给$rollno
。所以这是赋值为真的
。因此,您的if
条件始终成功,而您的else
部分没有意义。你必须在if
中使用精确的比较运算符你必须比较而不是赋值if($rollno=$keyword){
这不是比较。这是错误的。==
需要我将代码更改为$keyword=Input::get('keyword');$rollno=Student::find($keyword);if($keyword====$rollno['rollno']){}
但现在仍不工作,其他部件已损坏executing@LaravelWarrior你得到了答案。建议:-根据你的问题,这是任何人都可以给出的答案,因为我们不知道它是什么以及如何执行的。你必须在你这边检查。等待他回答。你已经标记了他的答案。你可以检查两个变量的内容可以使用dd()
或var\u dump()
。例如:var\u dump($rollno['rollno'])
和var\u dump($keyword)
我很高兴能提供帮助。
$keyword = Input::get('keyword');
$rollno = Student::find($keyword)->keywordRow;
if($rollno === $keyword){