【问题标题】:ErrorException (E_ERROR) Undefined variable: job (View: /Users/App/resources/views/freelancer/profile.blade.php)ErrorException (E_ERROR) 未定义变量:作业(查看:/Users/App/resources/views/freelancer/profile.blade.php)
【发布时间】:2021-11-16 12:16:16
【问题描述】:

我怎样才能让我的 view profile.blade.phpcontroller FreelancerController.php 控制, 访问控制器 ApplicantController.php 中一个名为 public function show 的现有 function

实现这一点并解决错误的最佳方法是什么(ErrorException (E_ERROR) Undefined variable: job)?

查看(profile.blade.php):

<div class="container">
      <div class="row justify-content-center">
          <div class="col-md-8 my-5">
            <div class="card-header">
    <a href="{{url("/job/application/$job->id")}}"><button class="btn btn-primary btn-block"> Next </button></a>
              </div>
          </div>
      </div>
    </div>

控制器(ApplicantController.php):

public function show($id)  {
        $job = Job::find($id);   
        return view('jobpost.application')->withJob($job);
    }

【问题讨论】:

    标签: laravel laravel-8 laravel-blade


    【解决方案1】:

    view 助手接受数据作为第二个参数。通过那里的工作。

    view('jobpost.application', ['job' => $job])
    

    【讨论】:

    • 该函数适用于已经存在的视图 (application.blade.php),但我希望我的另一个视图 (profile.blade.php) 也可以使用该函数。但我不知道该怎么做,我的路线会不会遗漏一些东西?
    • 您可以使用任何您想要的视图。只需将它作为第一个参数传递,将数据作为第二个参数传递(就像我的回答一样),而不是使用 withJob(还没有听说过这种方法)。
    • 谢谢我试过了,它给了我同样的错误......所以我想知道......
    【解决方案2】:

    您也可以使用compact 方法传递您的变量

    return view('jobpost.application',compact('job'));
    

    【讨论】:

      【解决方案3】:

      为什么使用相同的控制器方法返回两个不同的视图?最好将这些东西分开 IMO。

      但如果你真的想这样做,你可以检查路线并将其用作返回什么视图的条件。

      https://laravel.com/docs/8.x/routing#accessing-the-current-route

      这样的事情应该可以工作:

      $job = Job::find($id);
      
      if (Route::currentRouteName() === 'your route name') {    
          $view = 'jobpost.application';
      } elseif (Route::currentRouteName() === 'your other route name') {
          $view = 'jobpost.profile';
      }
          
      return view($view, ['job' => $job]);
      

      别忘了use Illuminate\Support\Facades\Route;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-16
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 2020-04-16
        • 1970-01-01
        相关资源
        最近更新 更多