好吧,我很迷茫。下面列印我們的 [] 一個空陣列。這真的讓我很困惑。AppServiceProvider 填充下拉串列
\View::composer(['layouts/frontend/partials/header'], function ($view) { $title = Weekend::all('title','id'); $view->with(['title'=>$title]); });
route Route::get('weekends/{weekend:title}',[PagesController::class,'getCurrent']);`
鏈接到個人頁面
@foreach($title as $title) <li><a href="weekends/{{$title->title}}">{{$title->title}}</a></li> @endforeach``` controller ``` public function getCurrent(Weekend $title) { return $title; }
和模型
<?php
namespace App\Models\Webmaster;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Weekend extends Model
{
use HasFactory;
protected $fillable = [];
public function weekendTeamMembers() {
return $this->hasMany(App\Models\Webmaster\WeekendTeamMember::class);
}
public function getRouteKeyName() {
return 'title';
}
}
enter code here
我一切正常,但我想讓網址傳遞周末標題而不是 ID。不知道如何做到這一點。在我的 AppService Provider 中,我使用以下內容填充導航欄下拉選單:
\View::composer(['layouts/frontend/partials/header'], function ($view) {
$title = Weekend::all('title', 'id');
$view->with(['title'=>$title]);
});
我對每個單獨頁面的路線是
Route::get('weekends/{weekend}', [PagesController::class, 'getCurrent']);
鏈接是
@foreach ($title as $title)
<li><a href="{{ $title->id }}">{{ $title->title }}</a></li>
@endforeach
但是,如果我更改{{ $title->id }}為{{ $title->title }}404。
控制器是
public function getCurrent(Weekend $weekend)
{
return view('pages.weekend')->with(['weekend'=> $weekend]);
}
uj5u.com熱心網友回復:
你可以這樣做
Route::get('weekends/{weekend:title}',[PagesController::class,'getCurrent']);
uj5u.com熱心網友回復:
有幾種方法可以更改路由系結鍵(默認設定為主鍵)。最簡單的方法是將其添加到您的隱式路由系結 (add :title):
Route::get('weekends/{weekend:title}',[PagesController::class,'getCurrent']);
另一種方法是更新您的模型以更改默認值:
public function getRouteKeyName() {
return 'title';
}
您可以在Laravel 檔案 中找到有關更改密鑰的更多檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331047.html
