前段时间本来准备学习 Laravel
的,后来因为换了工作的原因,又回到自己常用的 Yii
。现在要将 Laravel
重拾回来,开始学习这个被PHPer们喜爱的东西。
上一篇敢关于 Laravel
的文章 【Laravel学习篇 · 一】Windows下起步就遇麻烦 。这一篇讲讲在 Laravel
中借鉴 Yii
的一些使用方法。
在网站开发中,我们通常会有很多的基本固定的参数,比如 站点标题
、 copyright
、 url
等,看到这些我们通常会去 config
文件里面找,因为这些参数基本都是固定的,很少改动,就算改动也很简单。
但还有一些情况就是,如 user
表有一个字段 gander
为 0
或者 1
,表示 女生
和 男生
,在拿到数据在页面显示时肯定不应该显示 0
或 1
,而是转换为对应的文字信息。初学者可能是这样做的:
<?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 ?> ?>
这样的改动显然是不舒服的,万一老板说不需要有 保密
这个选项的时候,万一这样的改动有十个地方,万一......
这还是一个性别,如果还有其他很多的类似这样的操作,比如 type
、 is_actived
等等。面对这样的处理,有没有一些便捷、可扩展的配置呢?我们可以来看看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.php public 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 中运用 Yii 的这种方式其实也很简单,阅读官方的文档就会发现有一个东西叫 config('name')
,这个就是从配置文件夹 config
中回去配置细细,比如 config('app.url')
会获取到 /config/app.php
中的 url
配置项。
// config/app.php return [ '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
中借鉴 Yii
的 params
使用方法,其他更多的借鉴方法会在后续的不断学习中总结并分享出来。
博客: http://blog.helloarron.com
Github: https://github.com/ArronYR
Email: yangyun4814@gmail.com
原文地址: 【Laravel学习篇 · 二】在Laravel中借鉴Yii的一些使用方法
有很多地方都不完善,还望大家指出修正,如果你觉得这个对你有用,还请点个赞,谢谢!