【问题标题】:Else Part is not executing even when condition is false Laravel 5.2即使条件为假 Laravel 5.2,其他部分也不会执行
【发布时间】:2016-04-26 18:52:51
【问题描述】:

我正在开发一个 Web 应用程序,我正在搜索学生结果。通过输入学生卷号,我正在从数据库中获取他的数据。我有学生模型和学生控制器,我正在从表单和字段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';
        }
    }

【问题讨论】:

  • 你必须比较而不是分配if($rollno = $keyword){这不是比较。这是错误的 。 == 需要

标签: php laravel laravel-5.1 laravel-5.2


【解决方案1】:

首先,您尝试将字符串与对象进行比较。你应该加->keywordRow,把keywordRow改成真实的。

其次,使用=====(更好)运算符进行比较。 =assignment operator

$keyword = Input::get('keyword');
$rollno = Student::find($keyword)->keywordRow;
if($rollno === $keyword){

【讨论】:

  • 我将代码更改为$keyword = Input::get('keyword'); $rollno = Student::find($keyword); if($keyword == $rollno['rollno']){ },但现在仍然无法正常工作,其他部分正在执行
  • @LaravelWarrior 你得到了答案。
  • 建议:-根据您的问题,这是任何人都可以给出的答案,因为我们不知道它是什么以及如何执行。你必须检查你的最后。等他反应过来。你已经标记了他的答案。
  • 您可以使用dd()var_dump() 检查两个变量的内容。例如:var_dump($rollno['rollno'])var_dump($keyword)
  • 很高兴能帮上忙。
【解决方案2】:

你的 if 条件是:

if($rollno = $keyword)

这意味着您将$keyword 分配给$rollno。所以这是分配是true。因此,您的 if 条件始终成功,而您的 else 部分没有任何意义。您必须在if中使用精确比较运算符

【讨论】:

    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多