ErrorException (E_ERROR)未定义变量:job (View: /Users/App/resource



如何使我的视图profile.blade.php控制器控制FreelancerController.php,访问一个已经存在的函数调用公共函数show这是在控制器ApplicantController.php?

哪些是最好的方法来实现这一点,并解决错误(ErrorException (E_ERROR)未定义的变量:工作)?

视图(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);
}

viewhelper接受数据作为第二个参数。把作业递过去。

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

通过compact方法传递变量

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

为什么使用相同的控制器方法返回两个不同的视图?在我看来,最好把这些东西分开。

但是如果你真的想那样做你可以检查路由并把它作为返回哪个视图的条件

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 IlluminateSupportFacadesRoute;

最新更新