摘要:在中封裝屬性來統一管理視圖中的路由在應用程序中擁有數十個甚至數百個視圖并不罕見。很快就會對視圖中使用的路由管理失控。可以想象如果你在視圖中做了多少這樣的事情。這樣做的好處在于,你修改視圖中的任何路由,只需編輯兩個文件,而不是數百個。
在Eloquent中封裝URL屬性來統一管理視圖中的路由
在 Laravel 應用程序中擁有數十個甚至數百個視圖并不罕見。很快就會對視圖中使用的路由管理失控。可以想象如果你在視圖中做了多少這樣的事情。
$user->id]) }}">{{ $user->name }}
如果想對路由名稱或者默認查詢參數值進行修改,就需要在整個應用中進行大量的字符串替換操作,但是這會帶來重復性的工作量,同時也可能會漏掉一些地方。
那我們可以做些什么來更好的處理這個問題呢?下面有兩種實現方式。
第一種: 修改Eloquent// app/Models/User.php然后在視圖中就可以這樣使用
{{ $user->name }}感覺寫的很干凈,是吧?但對于高級開發人員,你可能希望采用下一種方法。
第二種. 在Eloquent中使用URL Presenter咋一看你可能會覺的比較眼熟,是的,這里我們定義一個url屬性,但與一般寫法不同的是是我們會返回一個 presenter 實例。
// app/Models/User.php// app/Presenters/User/UrlPresenter.php user = $user; } public function __get($key) { if(method_exists($this, $key)) { return $this->$key(); } return $this->$key; } public function delete() { return route("users.delete", $this->user); } public function edit() { return route("users.edit", $this->user); } public function show() { return route("users.show", $this->user); } public function update() { return route("users.update", $this->user); } }然后就可以這樣使用
{{ $user->name }}如上,現在的視圖并不關心我們如何確定URL,只是返回一個URL即可。 這樣做的好處在于,你修改視圖中的任何路由,只需編輯兩個文件,而不是數百個。
關于更多PHP的使用,請前往 PHPCasts社區
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28609.html
摘要:新增一篇新聞新增失敗輸入不符合要求請輸入標題請輸入內容新增文章上面代碼中的是為了防攻擊的,每個表單都必須存在。 本文我將結合簡單例子,完成laravel框架下的增刪改查,希望會對大家有所幫助。在進行之前,大家應該保證自己的數據庫鏈接無誤,artisan命令能正常使用,路由鏈接無問題。 一、創建控制器、路由避免影響其他路由,我們先注釋掉之前聯系時編寫的所有路由。因為上一章我們已經學會建立...
摘要:原文來自免費視頻教程地址期間受到很多私事影響,終于還是要好好寫寫的教程了。我們來實現這個功能顯示文章詳情通過文章展示來快速體驗上面的流程注冊路由來到中,我們增加一個路由上面的路由指定我們需要加載中的方法。 原文來自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...
摘要:正文架構概覽正文架構概覽接觸大概一個月吧,期間寫了個項目,趁現在稍微有點時間,來回顧梳理一下。里的模塊,并不等同于項目中的模塊概念。當然,這只是我目前階段的理解。聲明 本系列文章內容梳理自以下來源: Angular 官方中文版教程 官方的教程,其實已經很詳細且易懂,這里再次梳理的目的在于復習和鞏固相關知識點,剛開始接觸學習 Angular 的還是建議以官網為主。 因為這系列文章,更多的會...
閱讀 2984·2021-09-10 10:50
閱讀 3188·2019-08-30 14:19
閱讀 3515·2019-08-29 17:31
閱讀 3241·2019-08-29 16:43
閱讀 2191·2019-08-29 14:05
閱讀 2088·2019-08-29 13:17
閱讀 2041·2019-08-26 13:25
閱讀 1756·2019-08-26 12:20