【问题标题】:Laravel Find and first not working together properlyLaravel Find 和 first 不能正常协同工作
【发布时间】:2019-12-27 08:31:30
【问题描述】:

在我的employeeController 函数中,显示视图的错误ID 详细信息。除了使用 first() 之外,还有什么理想的解决方案?

如果我只是要使用

$employee = Employee::find($id);

它会工作,但它不会显示“公司”详细信息

但是如果我使用了

$employee = Employee::find($id)->with('company')->first();

它将检索第一个 id 并且不会使用 find($id)

我希望输出 id 9,但由于控制器中的 first(),它一直给我 id 8。

【问题讨论】:

    标签: php laravel view controller


    【解决方案1】:

    可以使用with()静态方法,请参考doc

    例如:

    $employee = Employee::with('company')->find($id);
    

    或者你可以找到记录并加载关系

    $employee = Employee::findOrFail($id)->load('company');
    

    【讨论】:

      【解决方案2】:

      根据 laravel 文档,您可以使用其他两种方法,这样可以提高编码效率。

      • FindOrFail
      • FirstOrFail

      您可以在 laravel 中使用 FirstOrFail 方法轻松获取第一个值。

      对于您的代码,它将是,

      $employee = Employee::firstOrFail();

      欲了解更多信息,请尝试此链接

      Stackoverflow findorfail

      【讨论】:

        【解决方案3】:

        你应该像这样在find之前添加with

        $employee = Employee::with('company')->find($id)->first();
        // OR try simple way
        $employee = Employee::with('company')->findOrFail($id);
        

        【讨论】:

          【解决方案4】:

          请尝试使用:

            Employee::join('company','employee.id','=','company.employee_id')->where('employee.id','='$id')->first();
          

          【讨论】:

            【解决方案5】:

            你应该使用 laravel Eloquent FindOrFail

            有关更多信息,请参阅文档Retrieving Single Models / Aggregates

            【讨论】:

              猜你喜欢
              • 2020-11-20
              • 2019-09-11
              • 1970-01-01
              • 2021-06-30
              • 1970-01-01
              • 2015-09-29
              • 2017-08-09
              • 2015-04-23
              • 1970-01-01
              相关资源
              最近更新 更多