好吧,我太迷茫了。下面打印我们的[]一个空数组。这真的把我搞砸了。AppServiceProvider来填充下拉列表
\View::composer(['layouts/frontend/partials/header'], function ($view) { $title = Weekend::all('title','id'); $view->with(['title'=>$title]); });路由路线::get(周末/{周末:标题},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提供程序中,我使用标题填充导航条下拉列表:
\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 }} 改为{{ $title->title }},则会得到404.。
控制器是
public function getCurrent(Weekend $weekend)
{
return view('pages.weekend')->with(['weekend'=> $weekend]);
}发布于 2021-10-20 21:33:42
你可以这样做
Route::get('weekends/{weekend:title}',[PagesController::class,'getCurrent']);发布于 2021-10-20 21:39:11
有几种方法可以更改路由绑定键(默认设置为主键)。最简单的方法是将其添加到隐式路由绑定(add :title)中:
Route::get('weekends/{weekend:title}',[PagesController::class,'getCurrent']);另一种方法是更新模型以更改默认值:
public function getRouteKeyName() {
return 'title';
}您可以在拉勒维尔博士中找到关于更改密钥的更多文档。
https://stackoverflow.com/questions/69653230
复制相似问题