【发布时间】:2021-12-07 16:51:21
【问题描述】:
好吧,我迷路了。下面打印我们的 [] 一个空数组。这真的把我搞砸了。 AppServiceProvider 填充下拉列表
\View::composer(['layouts/frontend/partials/header'], function ($view) { $title = Weekend::all('title','id'); $view->with(['title'=>$title]); });
路线 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
我一切正常,但我想让 URL 传递周末标题而不是 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]);
}
【问题讨论】:
-
如果您想使用隐式路由模型绑定,您将不得不研究如何调整模型或路由定义以了解它需要为此目的使用哪个字段(默认情况下它将使用'id') ... laravel.com/docs/8.x/routing#customizing-the-default-key-name
标签: laravel friendly-url