Laravel 5.4:将变量发送到控制器并按类选择它

时间:2018-02-04 14:19:19

标签: php laravel

从乞讨开始我有这样的路线

Route::resource( '/product-cat', 'ProductCategoryController' );

和我的模特

class ProductCategory extends Model
{
    use Translatable;
    public $translatedAttributes = ['name'];
    protected $fillable = ['name'];
}

以下是我如何将变量$productCategory发送到控制器

<a href="{!! URL::route('product-cat.edit', $productCategory->id) !!}"> edit</a>

这是控制器

public function edit( ProductCategory $productCategory ) {
        return view( 'product.category.edit', compact( 'productCategory' ) );
}

现在在我的控制器中我尝试获取$productCategory的值 尝试dd($productCategory)但是空了

其他控制器工作正常。我在这里失踪了。

1 个答案:

答案 0 :(得分:0)

为了使laravel路由模型绑定起作用,方法中type-hint模型属性的名称应与路由名称匹配。

所以在你的情况下,路线看起来像:

Route::resource( '/product-cat', 'ProductCategoryController' );

这意味着使用路由模型绑定类型提示var必须与/product-cat同名,这是laravel规则。

所以在你的方法中:

public function edit( ProductCategory $productCat ) {
        return view( 'product.category.edit', compact( 'productCat' ) );
}