我有以下嵌套资源定义:
路线/ web.php
Route::resource('employees', 'EmployeeController');
Route::resource('employees.external_training_records', 'ExternalTrainingRecordController');
ExternalTrainingRecordController
public function create()
{
return view('employees.external_training_records.create');
}
意见/员工/ show.blade.php
<a href="{{ route('employees.external_training_records.create', $employee) }}">Create External Training Record</a>
意见/员工/ external_training_records / create.blade.php
<div class="card-header">{{ $employee->name }}</div>
Laravel不喜欢在views/employees/external_training_records/create.blade.php
中它在$employee
上调用一个未定义的变量
如何将$employee
传递给嵌套资源的创建页面?
它可以解决你的问题。为路由功能添加变量名称。
route('employees.external_training_records.create', ['employee' => $employee]);
ExternalTrainingRecordController
和这里一样
public function create(Employee $employee) // add parameter with type hint
{
return view('employees.external_training_records.create', ['employee' => $employee]); // add parameter in array
}