【发布时间】:2018-01-31 13:47:03
【问题描述】:
在 davejamesmiller/laravel-breadcrumbs 上的模型绑定有问题。 我会尽量简短,但如果您需要更多数据,请询问 =D 这是我的控制器/动作签名:
public function edit(Request $request, Vertical $vertical, UserMacro $macro)
这是我对应路线的BC:
Breadcrumbs::register('macro-edit', function (Generator $breadcrumbs, $vertical, $macro) {
$breadcrumbs->parent('macro-index');
$breadcrumbs->push($macro->name, route('macro-edit', [$vertical->_id, $macro]));
});
我在 $vertical 和 $macro 上获取字符串 ID,在 $macro->name 上中断。如果我添加提示作为操作,我会得到一个Type error。
Trying to get property of non-object (View: /.../resources/views/layouts/app.blade.php) (View: /.../resources/views/layouts/app.blade.php)
Type error: Argument 2 passed to DaveJamesMiller\Breadcrumbs\BreadcrumbsServiceProvider::{closure}() must be an instance of App\Vertical, string given, called in /.../vendor/davejamesmiller/laravel-breadcrumbs/src/BreadcrumbsGenerator.php on line 68 (View: /.../resources/views/layouts/app.blade.php) (View: /.../resources/views/layouts/app.blade.php)
【问题讨论】:
-
您是否在模型上设置了
$primaryKey属性,并将$incrementing设置为false?不这样做可能会阻止 Laravel 将字符串解析为Vertical -
该动作展示了一个正确加载的模型。我的问题只是面包屑 {closure} 接收字符串(id)
标签: laravel model bind breadcrumbs