最近开始看laravel了,以后就在这里记录学习中的一些注意的地方和一些关键功能的用法(版本laravel5):
1.获取配置项
\Config::get(‘app.timezone‘); 这样可以获取到app.php文件里的timezone的配置项的参数,看了同事的laravel4里面没有\斜杠发现会报错,所以这里要加上斜杠,或许是因为laravel5和4的目录结构和命名空间变了吧.也可以这样获取config(‘app.timezone‘);,临时修改配置参数:\Config::set(‘app.timezone‘,123); 这样设置了以后 获取的timeone就会变成123.如果自定义配置文件,那么app换成你自定的文件名,timezone换成你的配置参数就可以获取了.
2.路由:
以前听同事说laravel特别好用,当时不信,亲自试验了下,发现它的路由功能实在是强大.
默认的路由:Route::get(‘/‘, ‘[email protected]‘); 指的是 如果get方式访问根域名 则会直接访问到Welcome控制器下的index方法.
如果要给路由指定多种访问方式,可用如下的方法,访问域名/aaa无论是get还是post方法都会打印出字符串,第三个可以是回调函数或者是指定控制器下的方法
Route::match([‘get‘,‘post‘],‘/aaa‘,function () { //echo URL(‘aaa‘);//打印出一个url return ‘get或者post方法请求aaa路由‘; });
如果对访问方法不做限制,可以这样写:
Route::any(‘foo‘,function () { return ‘any路由方法‘; });
上面不会判断你的访问方式,任何方式都可以打印出字符串.
注:路由不要这样写‘/foo‘,它默认已经是域名/的路径了.
如果要让路由接受url里的参数的话可以这样写
Route::any(‘foo/{name}/{id}‘,function ($name,$id) { return $name.$id; });
如果需要在控制器下接受路由的参数可以这样写:
Route::get(‘test/{appid?}‘,‘[email protected]‘)
Route::get(‘test/{appid?}‘,‘[email protected]‘); //这样就可以在Home控制器下的test方法里这样接受参数: public function test($appid = ‘‘) { echo $appid; }
在路由后面加上参数的规则,
Route::get(‘test/{appid?}‘,‘[email protected]‘)->where(‘appid‘,‘[0-9]{2}‘);//这样appid只接受2位数.可以给配置的路由起上别名Route::get(‘home/box‘,[‘as‘=>‘test‘,function () { return 123;}]) 这样可以在控制器的方法里通过route(‘test‘);可以打印出这个路由的地址,也可以进行重定向
redirect()->route(‘profile‘);
//路由分组 Route::group([‘prefix‘=>‘admin‘],function () { Route::get(‘box‘,function () { return ‘admin分组下的box路由‘; }); Route::get(‘box1‘,function () { return ‘admin分组下的box1路由‘; }); Route::get(‘box2‘,function () { return ‘admin分组下的box2路由‘; }); });
3.配置数据库:在config/database.php里找到mysql的配置,但是它没有写明链接参数,而是通过env()获取的,只是给了默认值而已,这些获取的值是在根目录下的.env下配置的.
‘mysql‘ => [ ‘driver‘ => ‘mysql‘, ‘host‘ => env(‘DB_HOST‘, ‘localhost‘), ‘database‘ => env(‘DB_DATABASE‘, ‘forge‘), ‘username‘ => env(‘DB_USERNAME‘, ‘forge‘), ‘password‘ => env(‘DB_PASSWORD‘, ‘‘), ‘charset‘ => ‘utf8‘, ‘collation‘ => ‘utf8_unicode_ci‘, ‘prefix‘ => ‘v_‘, ‘strict‘ => false, ‘port‘ => ‘3306‘, ],
如果你要配置多个的话,则按这个格式再写一个,但是mysql这个键值自己定义,然后通过\DB::connection(‘自定义键值‘)->select(‘...‘)来进行操作,目前还不清楚可不可以在model里面切换数据库配置(发现了再来改).
4.引用外部扩展类
laravel5 根命名空间是App.