当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

【Laravel学习篇 · 二】在Laravel中借鉴Yii的params使用方法 - 飞翔的码农

作者:小梦 来源: 网络 时间: 2024-02-29 阅读:

前段时间本来准备学习 Laravel 的,后来因为换了工作的原因,又回到自己常用的 Yii 。现在要将 Laravel 重拾回来,开始学习这个被PHPer们喜爱的东西。

上一篇敢关于 Laravel 的文章 【Laravel学习篇 · 一】Windows下起步就遇麻烦。这一篇讲讲在 Laravel 中借鉴 Yii 的一些使用方法。


情景

在网站开发中,我们通常会有很多的基本固定的参数,比如站点标题copyrighturl等,看到这些我们通常会去config文件里面找,因为这些参数基本都是固定的,很少改动,就算改动也很简单。
但还有一些情况就是,如user表有一个字段gander0或者1,表示女生男生,在拿到数据在页面显示时肯定不应该显示01,而是转换为对应的文字信息。初学者可能是这样做的:

<?php    <?php if ($user->gander == 1): ?>        <span>性别:<?php echo "男生";?></span>    <?php else: ?>        <span>性别:<?php echo "女生";?></span>    <?php endif ?>?>

但会随着网站的功能的变化发生变化,这时候需要添加一个2表示保密。那这时候我们还得去那个地方改动php的判断条件:

<?php    <?php if ($user->gander == 1): ?>        <span>性别:<?php echo "男生";?></span>    <?php elseif($user->gander == 2): ?>        <span>性别:<?php echo "保密";?></span>    <?php else: ?>        <span>性别:<?php echo "女生";?></span>    <?php endif ?>?>

这样的改动显然是不舒服的,万一老板说不需要有保密这个选项的时候,万一这样的改动有十个地方,万一......
这还是一个性别,如果还有其他很多的类似这样的操作,比如typeis_actived等等。面对这样的处理,有没有一些便捷、可扩展的配置呢?我们可以来看看Yii中的方法。

Yii 中的解决办法

面对什么的情况,在 Yii 中有一个很好的方法。当你开始学习 Yii 的时候,你已经注意到了config文件夹中的配置文件main.php,而且你会发现,在这个main.php文件中有一个params选项,这个是干嘛的呢?

// Yii 1 中'params' => array(    'adminEmail' => 'yangyun4814@gmail.com',    'gander' => [        0 => '女生'        1 => "男生",        2 => "保密"    ],    // ......),// Yii 2 中$params = array_merge(    require(__DIR__ . '/../../common/config/params.php'),    require(__DIR__ . '/params.php'));'params' => $params,// __DIR__ . '/params.php' 中的内容return [    'adminEmail' => 'yangyun4814@gmail.com',    'gander' => [        0 => '女生'        1 => "男生",        2 => "保密"    ]];

那在页面中这些数据是怎么使用的呢?

// controllers/UserController.phppublic function actionIndex(){    $user = User::findOne(1);    return $this->render('index',[        'user' => $user    ])}// views/user/index.php// Yii 1<span>性别:<?php echo Yii::app()->params['gander'][$user->gander];?></span>// Yii 2<span>性别:<?php echo \Yii::$app->params['gander'][$user->gander];?></span>

这样的方式是不是很舒服呢?写代码也方便很多呢?那在 Laravel 中如何去运用这样的方式呢?

Laravel中如何借鉴

在 Laravel 中运用 Yii 的这种方式其实也很简单,阅读官方的文档就会发现有一个东西叫config('name'),这个就是从配置文件夹config中回去配置细细,比如config('app.url')会获取到/config/app.php中的url配置项。

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

看到这里你大概已经知道了如何实现params的设置了。Let's GO ~
config文件夹中新建文件params.php,然后内容如下:

return [    'adminEmail' => 'yangyun4814@gmail.com',    'gander' => [        0 => '女生'        1 => "男生",        2 => "保密"    ],    'is_active' => [        0 => '未激活',        1 => '激活'    ],];

然后blade页面中使用config('name')调用即可:

<span>性别:{{ config('params.gander')[$user->gander] }}</span>

这个是在 Laravel 中借鉴 Yiiparams 使用方法,其他更多的借鉴方法会在后续的不断学习中总结并分享出来。

About Me

博客: http://blog.helloarron.com
Github: https://github.com/ArronYR
Email: yangyun4814@gmail.com


原文地址:【Laravel学习篇 · 二】在Laravel中借鉴Yii的一些使用方法

有很多地方都不完善,还望大家指出修正,如果你觉得这个对你有用,还请点个赞,谢谢!

热点阅读

网友最爱