我正在嘗試更改我的文章頁面的 url,而不是顯示文章 ID,我想顯示文章標題。
目前網址如下;
https://www.example.com/posts/post/32
其中 32 只是一個隨機的文章 ID。
相反,我喜歡它顯示如下;
https://www.example.com/posts/post/my-amazing-article
現在我查看了 laravel 檔案和 stackoverflow 上的不同帖子,并嘗試了很多東西,但我顯然在某個地方犯了一個錯誤,因為似乎沒有任何作業,所以我幾乎回到了我開始的地方。
刀刃
<a href="{{ route('post', $a->id) }}" class="feature-box-01 media" id="smallbox"></a>
路線
Route::get('/posts/post/{id}', [App\Http\Controllers\WelcomeController::class, 'post'])->name('post');
控制器
public function post(request $request){
$id = $request->id;
$article = Tinymce::find($id);
return view('/post')->with('articles, $articles');
}
現在,保存在 Tinymce 中的文章實際上是在子域的不同控制器上創建的。
public function tinymce(Request $request)
{
if(request()->ajax())
{
if($request->article_id == null)
{
$tinymce = new Tinymce;
}else{
$tinymce = Tinymce::find($request->article_id);
}
$tinymce->description = $request->description;
$tinymce->content = $request->myContent;
$tinymce->title = $request->title;
$tinymce->author = $request->author;
$tinymce->publish = $request->publish;
$title = $tinymce->title;
$slug = Str::slug($title, "-");
$tinymce->slug = $slug;
$tinymce->save();
return $tinymce->id;
}
}
正如你所看到的,當我在某處讀到使用自定義 url 的方法時,我已經把標題變成了一個蛞蝓,但我并沒有走得太遠。
任何幫助將不勝感激,謝謝。
uj5u.com熱心網友回復:
解釋:
首先,正如您所說,您將 slug 存盤到資料庫中。所以,這很好。
從Controller到View,你可以把它slug變成post物件。
Blade View : (你必須傳入slug路由 url)
<a href="{{ route('post', $a->slug) }}" class="feature-box-01 media" id="smallbox"></a>
路線:(id前往slug)
Route::get('/posts/post/{slug}', [App\Http\Controllers\WelcomeController::class, 'post'])->name('post');
控制器:(現在您可以slug從第二個引數中獲取)
public function post(request $request, $slug = ''){
$article = Tinymce::where('slug', $slug)->first();
return view('/post', compact('article'));
}
現在,您可以使用 slug 訪問自定義 URL。
我希望,它可以幫助你。@assiemp
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/454891.html
