برای سئو پسند بودن و ندادن آی دی به هکر ها:
ابتدا به تیبل مقالات یک ستون با نام slug و تایپ varchar و Length/Values یا طول 255 یا... و اینکه باید یونیک باشد، اضافه می کنیم.
حال در روت به جای آیدی اسلاگ را میفرستیم (البته این فقط یه اسمه و خیلی مهم نیست):
Route::get('/article/{slug}', "ArticleController@showSingleArticle");
سپس تغییراتی نیز در کنترلر می دهیم:
use App\Article;
use App\Comment;
class ArticleController extends Controller
{
public function showHomePage()
{
$result = Article::with('user')->get();
return view('welcome' , ['articles'=>$result]);
}
public function showSingleArticle($slug) این
{
$article = Article::where('slug',$slug)->first(); این
$comments = Comment::where("article_id", $article->id)->paginate(5);
اینجام میگیم به شرطی که آرتیکل آیدیش مساوی باشه با ظرف خط بالا که تیبل آرتیکل پر شده و مساوی با آیدیش باشه.
return view("SingleArticle" , ["article"=>$article , 'comments'=>$comments ]);
}
}
حال در ویو هم اون آدرسی که زیر پست ها در صفحه اصلی هست (بیشتر) را عوض می کنیم:
<a href="{{ url('article') }}/{{ $article->slug }}">
بیشتر...
</a>