Laravel 生成 Url 主要有三種方式
<?php
url('posts/show/1');
route('posts.show', 1);
action('PostController@show', 1);
在專案開發中,應當如何使用這三個方法呢?
儘量使用 route 方法
應當儘量使用 route
方法,主要有兩個原因:
route
方法,即命名路由,可讀性更高;route
方法一般不需要改動,而url
或者action
方法都會隨著 url 或者控制器的變更而變更。
儘量傳入 Model 例項作為引數
方法一:傳入引數
route('posts.show', ['post' => 1]);
route('posts.show', 1);
route('posts.show', $post->id);
方法二:傳入例項
route('posts.show', ['post' => $post]);
route('posts.show', $post);
傳入例項時候,route
函式將 自動提取模型的主鍵 ,比如我們使用 slug
作為文章的主鍵時,方法一需要對應的調整引數,而方法二則會自動獲取對應的路由主鍵,不需要做任何修改。
// 方法 1
route('posts.show', $post->slug);
// 方法 2
route('posts.show', $post);
因此,儘量使用 Model 例項作為路由引數,可避免因主鍵修改而發生的程式碼改動。
更多關於 Laravel Url 的使用教程
- Laravel Url 使用指南 4-1 基礎篇 | Laravel China 社群
- Laravel Url 使用指南 4-2 使用 Trait 複用 URL 函式 | Laravel China 社群
- Laravel Url 使用指南 4-3 使用 Presenter 管理 url | Laravel China 社群
- Laravel Url 使用指南 4-4 簽名 Url 的使用及原理 | Laravel China 社群
本作品採用《CC 協議》,轉載必須註明作者和本文連結