Bad Practice Example
class ArticleController extends Controller { // ... public function update(Article $article) { $validatedArticle = $request->validate([ 'title' => ['required', 'unique:posts', 'max:255'], 'body' => ['required'], ]); $article->update($validatedArticle); return redirect('/articles/' . $article->id); } } // Routes Route::get('/articles/{article}', [ArticleController::class, 'show']);
What To Do Instead
class ArticleController extends Controller { // ... public function update(Article $article) { $validatedArticle = $request->validate([ 'title' => ['required', 'unique:posts', 'max:255'], 'body' => ['required'], ]); $article->update($validatedArticle); return redirect(route('articles.show', $article)); // or //return redirect(route('articles.show', $article->id)); } } // Routes Route::get('/articles/{article}', [ArticleController::class, 'show'])->name('articles.show');
دائما يجب أن نأخذ بعين الإعتبار، بأن الروابط route URLs ممكن أن يطرأ عليها أي تغيير، لذلك فإن إستخدام route URLs ليس فكرة جيده.
توفر لارافيل ما يسمى named routes، بحيث نستطيع تعيين إسم للـ URL، وعند الحاجة لعمل أي تغيير أو تحديث فإنه يمكن لنا القيام بذلك في ملف واحد وهو web.php or api.php.