我困在laravel的路由模型綁定的一個非常奇怪的問題上。Laravel 5.4與資源綁定的隱式路由模型返回空對象
使用的路由資源:
Route::resource('vendors', 'VendorController');
編輯條目的路線如下:
GET|HEAD | admin/vendors/{vendor}/edit | vendors.edit | App\Http\Controllers\[email protected] | web,auth.admin
從我隱路線模型的理解結合
因此,供應商屬性應該允許訪問直接對象。
在我的控制器功能,我可以得到沒有問題的實際ID。但是,當我嘗試獲取供應商對象時,結果是空的。沒有404,但只是一個空的結果,使模板失敗,「未定義的變量:供應商」。
public function edit(Vendor $vendor)
{
dd($vendor);
return view('admin.vendor.edit', compact($vendor));
}
任何人都可以指向正確的方向?
更新:出於某種原因,路由模型綁定正在工作。然而,該模板仍然會引發錯誤,稱供應商未定義。
@extends('admin.layout')
@section('content')
{!! Form::model($vendor, ['method' => 'PATCH', 'url' => 'admin/vendors'.$vendor->id]) !!}
@include ('admin.vendor._form', ["submitButtonText" => "Änderungen speichern"])
{!! Form::close() !!}
@include ('_errors')
@endsection
我相信這是因爲{vendor}是供應商對象的ID。 您必須使用該ID從數據庫中獲取對象。 – Hanny
如果你沒有輸入提示(即'function edit($ vendor)'),那麼當你用'dd()'的時候你會得到什麼?假設它是ID,當你的Vendor :: find($ vendor)'時,你會得到什麼? – Samsquanch
您是否正確導入App \ Vendor模型到您的控制器中? –