Laravel3 学习笔记

2016-07-12 10:22:39来源:oschina作者:mdoo人点击

Web开发框最大的存在意义无疑是为开发者提供便利,这种被提供的便利不仅表现在对于整个应用接口上的梳理、组织和解耦,也表现在更多细微方 便,比如各种工具的提供。Laravel3为开发者提供了各种有关web开发的工具,让开发者在开发应用时只需要关注于自身的业务,而不必在拘泥在其他外 延的纠缠。


跳转

跳转在Web应用中经常被用到,Laravel3提供丰富的实现跳转的方法:


跳转到特定uri:


returnRedirect::to('user/profile');

附带特定的状态码如301/302进行跳转:


returnRedirect::to('user/profile',301);

发起https跳转:


returnRedirect::to_secure('user/profile');

返回应用根目录:


returnRedirect::home();

返回上一个动作uri的跳转:


returnRedirect::back();

跳转到一个命名路由:


returnRedirect::to_route('profile');

跳转到某一个controller类中的方法:


returnRedirect::to_action('home@index');

附带参数可以这样:


returnRedirect::to_route('profile',array($username));
returnRedirect::to_action('user@profile',array($username));

附带flash消息的跳转:


returnRedirect::to('profile')->with('status','WelcomeBack!');

可以这样读取msg内容:


$status=Session::get('status');

laravel 并没有使用php自带的session $_SESSION 也同样不能使用,laravel自己内建了全新的session


写入session的方法是


Session::put('key','value');


仅仅这样是不够的,偶尔会丢失Session


你还需要在写入Session的之后执行保存Session::save();


这样就解决了session丢失的问题了。


错误响应返回

404错误返回:


returnResponse::error('404');

500错误返回:


returnResponse::error('500'); 类库的调用

对于经常使用的类库可以将类库文件放到application/libraries文件夹下,laravel用自动载入这些类库,不必再手动显 式载入调用,简化了开发。比如我们建立一个application/libraries/printer.php类库文件,其内容为:


classPrinter{
publicstaticfunctionwrite($text){
echo$text;
}
}

然后就可以在其他地方通过Printer::write()来调用类库中的方法了。


文件下载

返回一个文件下载响应:


returnResponse::download('file/path.jpg');

可以对文件进行重命名:


returnResponse::download('file/path.jpg','photo.jpg'); 资源管理

Laravel3在管理css和js资源文件方面提供了一些帮助,(个人感觉用处不大,如果不能很好的和backbone这样的前端框架整合,这个功能意义真的不大)。


添加资源:


Asset::add('jquery','js/jquery.js');

第一个参数是资源名,第二个参数是资源文件相对于public文件夹的位置。


我们知道不管是css还是js在前端加载的时候都需要有一定的顺序,这就牵扯到了依赖,所以在添加资源的时候不能不考资源依赖的问题。


在添加资源的时候我们可以这样处理:


//jquery-ui资源依赖jqueryAsset::add('jquery-ui','js/jquery-ui.js','jquery');

这样,Laravel3 就会帮助我们自动处理好资源依赖问题了。


当某个资源依赖多个其他资源时,只需要将其他资源作为数组当做第三个参数传入:


//third资源同时一来first资源与second资源Asset::add('third','js/third.js',array('first','second'));

然后在模板中调用Asset::styles()和 Asset::scripts()方法可以调用出已经添加的资源,即生成相应的html代码在view中渲染:


如下:


echoAsset::styles();echoAsset::scripts();

在blade模板中可以直接使用


{{Asset::styles();}}{{Asset::scripts();}} 资源容器

往往我们需要粒度更细的资源管理,比如我们希望一部分js在网页底部加载以提高网页整体的加载速度。这时候我们可以使用资源容器来帮助我们再组织资源,以方便部分调用。


建立一个资源容器并且向其中添加资源:


//建立容器名为footerAsset::container('footer')->add('example','js/example.js');

这样调用:


echoAsset::container('footer')->scripts();

如果是在Blade模板之中可以这样:


{{Asset::container('footer')->scripts();}}

对于bundle的资源,Laravel3也为我们提供了方案,只需将资源容器与bundle绑定:


Asset::container('foo')->bundle('admin');

然后我们再往此容器中添加资源的时候,Laravel3将会自动为我们指向bundle所在public目录,我们只需要填写资源的相对路径。


转自:http://www.tuicool.com/articles/6VV7Nj


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台