成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Laravel學(xué)習(xí)篇 · 二】在Laravel中借鑒Yii的params使用方法

liuhh / 2540人閱讀

摘要:中的解決辦法面對(duì)什么的情況,在中有一個(gè)很好的方法。博客原文地址學(xué)習(xí)篇二在中借鑒的一些使用方法有很多地方都不完善,還望大家指出修正,如果你覺得這個(gè)對(duì)你有用,還請(qǐng)點(diǎn)個(gè)贊,謝謝

前段時(shí)間本來(lái)準(zhǔn)備學(xué)習(xí) Laravel 的,后來(lái)因?yàn)閾Q了工作的原因,又回到自己常用的 Yii ?,F(xiàn)在要將 Laravel 重拾回來(lái),開始學(xué)習(xí)這個(gè)被PHPer們喜愛的東西。

上一篇敢關(guān)于 Laravel 的文章 【Laravel學(xué)習(xí)篇 · 一】Windows下起步就遇麻煩。這一篇講講在 Laravel 中借鑒 Yii 的一些使用方法。


情景

在網(wǎng)站開發(fā)中,我們通常會(huì)有很多的基本固定的參數(shù),比如站點(diǎn)標(biāo)題、copyright、url等,看到這些我們通常會(huì)去config文件里面找,因?yàn)檫@些參數(shù)基本都是固定的,很少改動(dòng),就算改動(dòng)也很簡(jiǎn)單。
但還有一些情況就是,如user表有一個(gè)字段gander0或者1,表示女生男生,在拿到數(shù)據(jù)在頁(yè)面顯示時(shí)肯定不應(yīng)該顯示01,而是轉(zhuǎn)換為對(duì)應(yīng)的文字信息。初學(xué)者可能是這樣做的:

gander == 1): ?>
        性別:
    
        性別:
    
?>

但會(huì)隨著網(wǎng)站的功能的變化發(fā)生變化,這時(shí)候需要添加一個(gè)2表示保密。那這時(shí)候我們還得去那個(gè)地方改動(dòng)php的判斷條件:

gander == 1): ?>
        性別:
    gander == 2): ?>
        性別:
    
        性別:
    
?>

這樣的改動(dòng)顯然是不舒服的,萬(wàn)一老板說(shuō)不需要有保密這個(gè)選項(xiàng)的時(shí)候,萬(wàn)一這樣的改動(dòng)有十個(gè)地方,萬(wàn)一......
這還是一個(gè)性別,如果還有其他很多的類似這樣的操作,比如typeis_actived等等。面對(duì)這樣的處理,有沒有一些便捷、可擴(kuò)展的配置呢?我們可以來(lái)看看Yii中的方法。

Yii 中的解決辦法

面對(duì)什么的情況,在 Yii 中有一個(gè)很好的方法。當(dāng)你開始學(xué)習(xí) Yii 的時(shí)候,你已經(jīng)注意到了config文件夾中的配置文件main.php,而且你會(huì)發(fā)現(xiàn),在這個(gè)main.php文件中有一個(gè)params選項(xiàng),這個(gè)是干嘛的呢?

// Yii 1 中
"params" => array(
    "adminEmail" => "[email protected]",
    "gander" => [
        0 => "女生"
        1 => "男生",
        2 => "保密"
    ],
    // ......
),

// Yii 2 中
$params = array_merge(
    require(__DIR__ . "/../../common/config/params.php"),
    require(__DIR__ . "/params.php")
);
"params" => $params,

// __DIR__ . "/params.php" 中的內(nèi)容
return [
    "adminEmail" => "[email protected]",
    "gander" => [
        0 => "女生"
        1 => "男生",
        2 => "保密"
    ]
];

那在頁(yè)面中這些數(shù)據(jù)是怎么使用的呢?

// controllers/UserController.php
public function actionIndex()
{
    $user = User::findOne(1);
    return $this->render("index",[
        "user" => $user
    ])
}

// views/user/index.php
// Yii 1
性別:params["gander"][$user->gander];?>

// Yii 2
性別:params["gander"][$user->gander];?>

這樣的方式是不是很舒服呢?寫代碼也方便很多呢?那在 Laravel 中如何去運(yùn)用這樣的方式呢?

Laravel中如何借鑒

在 Laravel 中運(yùn)用 Yii 的這種方式其實(shí)也很簡(jiǎn)單,閱讀官方的文檔就會(huì)發(fā)現(xiàn)有一個(gè)東西叫config("name"),這個(gè)就是從配置文件夾config中回去配置細(xì)細(xì),比如config("app.url")會(huì)獲取到/config/app.php中的url配置項(xiàng)。

// config/app.php
return [
    "debug" => env("APP_DEBUG", false),
    "url" => "http://blog.helloarron.com",
    "timezone" => "UTC",
]

看到這里你大概已經(jīng)知道了如何實(shí)現(xiàn)params的設(shè)置了。Let"s GO ~
config文件夾中新建文件params.php,然后內(nèi)容如下:

return [
    "adminEmail" => "[email protected]",
    "gander" => [
        0 => "女生"
        1 => "男生",
        2 => "保密"
    ],
    "is_active" => [
        0 => "未激活",
        1 => "激活"
    ],
];

然后blade頁(yè)面中使用config("name")調(diào)用即可:

性別:{{ config("params.gander")[$user->gander] }}
存在的問(wèn)題

在網(wǎng)友@Outshine的提示下,上面的方法在Yii中是存在問(wèn)題的:

國(guó)際化

在IDE里提示

關(guān)于國(guó)際化,上面在params中的valae不用寫中文,而是約定好的一些變量,然后通過(guò)Yii::t("filename", Yii::app()->params"gander");這樣就解決了國(guó)際化的問(wèn)題。關(guān)于在IDE里提示,這個(gè)就做不到了。
所以,關(guān)于從數(shù)據(jù)庫(kù)獲取一些需要轉(zhuǎn)換的值的時(shí)候,可以在對(duì)應(yīng)的模型里面做:

//model中
public static function getTypeOption(){
    return [
        self::TYPE_A => Yii::t("model","type a"),
        self::TYPE_B => Yii::t("model","type b")
    ];
}
//view中
$form->field($model,"type")->dropdownList($model->getTypeOption()[$model->type]);

感謝網(wǎng)友@Outshine的意見和提供的一些資料:

getyii.com

YII2干貨集

這個(gè)是在 Laravel 中借鑒 Yiiparams 使用方法,其他更多的關(guān)于 Laravel 的學(xué)習(xí)內(nèi)容會(huì)在后續(xù)的不斷學(xué)習(xí)中總結(jié)并分享出來(lái)。

About Me

博客: http://blog.helloarron.com
Github: https://github.com/ArronYR
Email: [email protected]


原文地址:【Laravel學(xué)習(xí)篇 · 二】在Laravel中借鑒Yii的一些使用方法

有很多地方都不完善,還望大家指出修正,如果你覺得這個(gè)對(duì)你有用,還請(qǐng)點(diǎn)個(gè)贊,謝謝!

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21236.html

相關(guān)文章

  • 2018年總結(jié)

    摘要:一直想做一個(gè)總結(jié)吧,拖延癥,一直拖到了現(xiàn)在。設(shè)計(jì)模式在去年,月的時(shí)候,學(xué)習(xí)了大部分的設(shè)計(jì)模式。數(shù)據(jù)結(jié)構(gòu)和算法不是科班出身,所以找了一本算法書,重頭到尾,認(rèn)真學(xué)習(xí)了一遍。學(xué)完感受就是,會(huì)寫數(shù)據(jù)結(jié)構(gòu)和算法還是會(huì)寫,不會(huì)寫的還是不會(huì)寫。 工作了一年多了,這一年里,過(guò)的還是比較充實(shí)。一直想做一個(gè)總結(jié)吧,拖延癥,一直拖到了現(xiàn)在。 1 設(shè)計(jì)模式 在去年3,4月的時(shí)候,學(xué)習(xí)了大部分的設(shè)計(jì)模式。設(shè)計(jì)模...

    張漢慶 評(píng)論0 收藏0
  • Laravel學(xué)習(xí) · 一】Windows下起步就遇麻煩

    摘要:在看了之后,在下自己也搭建晚了一下,突然想到自己搭建這事還沒完成呢。后面就是按照官方的方法安裝但是由于網(wǎng)速什么的你懂的總是安裝失敗,沒辦法搜了一下解決辦法。最后又可以繼續(xù)愉快學(xué)習(xí)了。 很早前 phphub 出來(lái)的時(shí)候我就去注冊(cè)了一個(gè)賬號(hào),而且它的源碼是放在 github 上開源的,當(dāng)時(shí)就想自己搭建著玩,它是基于 laravel 的,但是我以前都接觸的是 CI 和 Yii ,不會(huì) lar...

    YancyYe 評(píng)論0 收藏0
  • PHPer面試指南-Laravel

    摘要:簡(jiǎn)述的生命周期采用了單一入口模式,應(yīng)用的所有請(qǐng)求入口都是文件。分發(fā)請(qǐng)求一旦應(yīng)用完成引導(dǎo)和所有服務(wù)提供者都注冊(cè)完成,將會(huì)移交給路由進(jìn)行分發(fā)。此外,由于對(duì)動(dòng)態(tài)方法的獨(dú)特用法,也使測(cè)試起來(lái)非常容易。 本書的 GitHub 地址:https://github.com/todayqq/PH... Laravel 作為現(xiàn)在最流行的 PHP 框架,其中的知識(shí)較多,所以單獨(dú)拿出來(lái)寫一篇。 簡(jiǎn)述 La...

    alaege 評(píng)論0 收藏0
  • 打通LaravelYii2任督

    摘要:于是直接暴力開干,找說(shuō)明書查詢。測(cè)試登錄,果然不通。一般情況下,這時(shí)候應(yīng)該遵照官方手冊(cè),開始建立自己相配套的數(shù)據(jù)庫(kù)體系。數(shù)據(jù)庫(kù)是連通了,出現(xiàn)了熟悉的錯(cuò)誤找不到表。登入登出完全正常,終于可以和和和美美地住在一個(gè)小房子里了。 Yii2與Laravel相愛相殺已經(jīng)很久了,導(dǎo)致廣大PHP愛好者必須選邊站隊(duì),生怕自己站錯(cuò)了陣營(yíng)。作為一個(gè)已經(jīng)上了Yii2賊船很久的人想換船是需要很大勇氣的,能不能就...

    kohoh_ 評(píng)論0 收藏0
  • 主流PHP框架性能非權(quán)威測(cè)試

    摘要:主流框架性能非權(quán)威測(cè)試作為一個(gè)開發(fā)者,而且是初創(chuàng)企業(yè)團(tuán)隊(duì)的技術(shù)開發(fā)者,選擇開發(fā)框架是個(gè)很艱難的事情。用的話,語(yǔ)法有點(diǎn)啰嗦,前后端代碼分離有點(diǎn)小麻煩,不過(guò)性能是非常好的,而且已經(jīng)有眾多國(guó)內(nèi)大公司在使用了,出現(xiàn)意外可以快速的找到大牛答疑解惑。 主流PHP框架性能非權(quán)威測(cè)試 作為一個(gè)PHP開發(fā)者,而且是初創(chuàng)企業(yè)團(tuán)隊(duì)的技術(shù)開發(fā)者,選擇開發(fā)框架是個(gè)很艱難的事情。 用ThinkPHP的話,招聘一個(gè)...

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

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

0條評(píng)論

liuhh

|高級(jí)講師

TA的文章

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