【发布时间】:2020-07-19 14:22:42
【问题描述】:
Laravel 7.x 版
我正在通过 ajax 请求提交 create 和 edit 方法,并且工作正常。但是,在我的应用程序中有一个依赖于父模块的模块,例如:Employee 和EmployeeEmergency。所以我在create方法中添加了Employee $Employee参数和route来处理这个请求。
但是,如果Employee 标识符正确,则可以正常工作。但是,如果标识符无效,则会引发异常。
{
"message": "No query results for model [App\\Employee] $arrayModel->token",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
...
}
我可以通过手动删除route model binding 和验证Employee 来处理此异常。但是,这只会不必要地增加代码。
我想用适当的响应来处理这个异常,比如Employee identifier is invalid 或类似的东西来通知用户并防止错误。
Employee.php
class Employee extends Model
{
...
public function getRouteKeyName()
{
return 'token';
}
...
}
EmployeeEmergencyController.php
use App\Employee;
use App\EmployeeEmergency;
class EmployeeEmergencyController extends Controller
{
public function create(Employee $employee)
{
...
}
}
Web.php
Route::get('employee-emergency/create/{employee}', 'EmployeeEmergencyController@create')
->name('admin.employee-emergency.create');
有没有开箱即用的解决方案..?
【问题讨论】:
标签: laravel model binding routes