国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在Eloquent中封裝URL屬性來統(tǒng)一管理視圖中的路由

Kerr1Gan / 2691人閱讀

摘要:在中封裝屬性來統(tǒng)一管理視圖中的路由在應(yīng)用程序中擁有數(shù)十個(gè)甚至數(shù)百個(gè)視圖并不罕見。很快就會(huì)對(duì)視圖中使用的路由管理失控。可以想象如果你在視圖中做了多少這樣的事情。這樣做的好處在于,你修改視圖中的任何路由,只需編輯兩個(gè)文件,而不是數(shù)百個(gè)。

在Eloquent中封裝URL屬性來統(tǒng)一管理視圖中的路由

在 Laravel 應(yīng)用程序中擁有數(shù)十個(gè)甚至數(shù)百個(gè)視圖并不罕見。很快就會(huì)對(duì)視圖中使用的路由管理失控。可以想象如果你在視圖中做了多少這樣的事情。

 $user->id]) }}">{{ $user->name }}

如果想對(duì)路由名稱或者默認(rèn)查詢參數(shù)值進(jìn)行修改,就需要在整個(gè)應(yīng)用中進(jìn)行大量的字符串替換操作,但是這會(huì)帶來重復(fù)性的工作量,同時(shí)也可能會(huì)漏掉一些地方。

那我們可以做些什么來更好的處理這個(gè)問題呢?下面有兩種實(shí)現(xiàn)方式。

第一種: 修改Eloquent
// app/Models/User.php


然后在視圖中就可以這樣使用

{{ $user->name }}

感覺寫的很干凈,是吧?但對(duì)于高級(jí)開發(fā)人員,你可能希望采用下一種方法。

第二種. 在Eloquent中使用URL Presenter

咋一看你可能會(huì)覺的比較眼熟,是的,這里我們定義一個(gè)url屬性,但與一般寫法不同的是是我們會(huì)返回一個(gè) presenter 實(shí)例。

// 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 }}

如上,現(xiàn)在的視圖并不關(guān)心我們?nèi)绾未_定URL,只是返回一個(gè)URL即可。 這樣做的好處在于,你修改視圖中的任何路由,只需編輯兩個(gè)文件,而不是數(shù)百個(gè)。

關(guān)于更多PHP的使用,請(qǐng)前往 PHPCasts社區(qū)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28609.html

相關(guān)文章

  • laravel5.5手寫教程3的基于資源路由的CURD操作(適合初學(xué)者)

    摘要:新增一篇新聞新增失敗輸入不符合要求請(qǐng)輸入標(biāo)題請(qǐng)輸入內(nèi)容新增文章上面代碼中的是為了防攻擊的,每個(gè)表單都必須存在。 本文我將結(jié)合簡單例子,完成laravel框架下的增刪改查,希望會(huì)對(duì)大家有所幫助。在進(jìn)行之前,大家應(yīng)該保證自己的數(shù)據(jù)庫鏈接無誤,artisan命令能正常使用,路由鏈接無問題。 一、創(chuàng)建控制器、路由避免影響其他路由,我們先注釋掉之前聯(lián)系時(shí)編寫的所有路由。因?yàn)樯弦徽挛覀円呀?jīng)學(xué)會(huì)建立...

    olle 評(píng)論0 收藏0
  • laravel入門

    摘要:開發(fā)根目錄測試分為單元測試和功能測試創(chuàng)建一個(gè)文件執(zhí)行測試測試前清除配置緩存運(yùn)行單個(gè)測試用例小提示在開發(fā)與進(jìn)行交互的第三方擴(kuò)展包時(shí),最好選擇注入契約而不使用。 參考https://laravelacademy.org/ 概念 單詞 契約Contract 就是接口 repository 倉庫(封裝數(shù)據(jù)訪問,可以搜索:repository模式) Container 容器 ServicePr...

    韓冰 評(píng)論0 收藏0
  • Laravel 5系列教程五:MVC的基本流程

    摘要:原文來自免費(fèi)視頻教程地址期間受到很多私事影響,終于還是要好好寫寫的教程了。我們來實(shí)現(xiàn)這個(gè)功能顯示文章詳情通過文章展示來快速體驗(yàn)上面的流程注冊(cè)路由來到中,我們?cè)黾右粋€(gè)路由上面的路由指定我們需要加載中的方法。 原文來自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...

    mrcode 評(píng)論0 收藏0
  • Angular(01)-- 架構(gòu)概覽

    摘要:正文架構(gòu)概覽正文架構(gòu)概覽接觸大概一個(gè)月吧,期間寫了個(gè)項(xiàng)目,趁現(xiàn)在稍微有點(diǎn)時(shí)間,來回顧梳理一下。里的模塊,并不等同于項(xiàng)目中的模塊概念。當(dāng)然,這只是我目前階段的理解。聲明 本系列文章內(nèi)容梳理自以下來源: Angular 官方中文版教程 官方的教程,其實(shí)已經(jīng)很詳細(xì)且易懂,這里再次梳理的目的在于復(fù)習(xí)和鞏固相關(guān)知識(shí)點(diǎn),剛開始接觸學(xué)習(xí) Angular 的還是建議以官網(wǎng)為主。 因?yàn)檫@系列文章,更多的會(huì)...

    bitkylin 評(píng)論0 收藏0
  • VUE知識(shí)點(diǎn)集錦

    摘要:載入前后在階段,實(shí)例的和都初始化了,但還是掛載之前為虛擬的節(jié)點(diǎn),還未替換。類似于,不同在于提交的是,而不是直接變更狀態(tài)可以包含任意異步操作。 vue基礎(chǔ) 1、 router 路由與 a 標(biāo)簽的區(qū)別:https://www.jianshu.com/p/34b...2、 VUE雙向綁定的原理: 答:VUE實(shí)現(xiàn)雙向數(shù)據(jù)綁定的原理就是利用了 Object.defineProperty() 這個(gè)...

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<