laravel3学习笔记(八)

原作者博客:ieqi.net

====================================================================================================

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

跳转

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

跳转到特定uri:

return Redirect::to(‘user/profile‘);

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

return Redirect::to(‘user/profile‘, 301);

发起https跳转:

return Redirect::to_secure(‘user/profile‘);

返回应用根目录:

return Redirect::home();

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

return Redirect::back();

跳转到一个命名路由:

return Redirect::to_route(‘profile‘);

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

return Redirect::to_action(‘[email protected]‘);

附带参数可以这样:

return Redirect::to_route(‘profile‘, array($username));
return Redirect::to_action(‘[email protected]‘, array($username));

附带flash消息的跳转:

return Redirect::to(‘profile‘)->with(‘status‘, ‘Welcome Back!‘);

可以这样读取msg内容:

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

错误响应返回

404错误返回:

return Response::error(‘404‘);

500错误返回:

return Response::error(‘500‘);

类库的调用

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

class Printer {
    public static function write($text) {
        echo $text;
    }
}

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

文件下载

返回一个文件下载响应:

return Response::download(‘file/path.jpg‘);

可以对文件进行重命名:

return Response::download(‘file/path.jpg‘, ‘photo.jpg‘);

资源管理

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

添加资源:

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

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

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

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

// jquery-ui 资源依赖 jquery
Asset::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中渲染:

如下:

echo Asset::styles();
echo Asset::scripts();

在blade模板中可以直接使用

{{Asset::styles();}}
{{Asset::scripts();}}

资源容器

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

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

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

这样调用:

echo Asset::container(‘footer‘)->scripts();

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

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

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

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

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

laravel3学习笔记(八)

时间: 2024-10-10 18:24:57

laravel3学习笔记(八)的相关文章

angular学习笔记(八)

本篇介绍angular控制视图的显示和隐藏: 通过给元素添加ng-show属性或者ng-hide属性来控制视图的显示或隐藏: ng-show: 绑定的数据值为true时,显示元素,值为false时,隐藏元素 ng-hide: 绑定的数据值为true时,隐藏元素,值为false时,显示元素 (其实只要用到其中一个就可以了) 下面来看个简单的例子,点击按钮可以显示/隐藏元素: <!DOCTYPE html> <html ng-app> <head> <title>

Linux System Programming 学习笔记(八) 文件和目录管理

1. 文件和元数据 每个文件都是通过inode引用,每个inode索引节点都具有文件系统中唯一的inode number 一个inode索引节点是存储在Linux文件系统的磁盘介质上的物理对象,也是LInux内核通过数据结构表示的实体 inode存储相关联文件的元数据 ls -i 命令获取文件的inode number /* obtaining the metadata of a file */ #include <sys/types.h> #include <sys/stat.h>

马哥学习笔记八——LAMP编译安装之PHP及xcache

1.解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X Software Development" 如果想让编译的php支持mcrypt扩展,此处还需要下载如下两个rpm包并安装之: libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 2.编译安装php-5.4.13 首先下载源码包至本地目录. # tar xf php-5.4.13

Lua学习笔记(八):数据结构

table是Lua中唯一的数据结构,其他语言所提供的数据结构,如:arrays.records.lists.queues.sets等,Lua都是通过table来实现,并且在Lua中table很好的实现了这些数据结构. 1.数组 在Lua中通过整数下标访问table中元素,既是数组,并且数组大小不固定,可动态增长.通常我们初始化数组时,就间接地定义了数组的大小,例如: 1 a = {} -- new array 2 for i=1, 1000 do 3 a[i] = 0 4 end 5 6 --数

初探swift语言的学习笔记八(保留了许多OC的实现)

尽管swift作为一门新语言,但还保留了许多OC的机制,使得swift和OC更好的融合在一起.如果没有OC基础的先GOOGLE一下. 如:KVO,DELEGATE,NOTIFICATION. 详见DEMO. import Foundation @objc // 需要打开objc标识,否则@optional编译出错 protocol kvoDemoDelegate { func willDoSomething() @optional func didDoSomething() //可选实现, }

《Hibernate学习笔记八》:组件映射

<Hibernate学习笔记八>:组件映射 前面介绍了一对一的单向.双向外键关联,例如,学生证和学生是一个一对一的关系.这篇博文主要是介绍下组件映射,即一个是另一个的一部分,例如,学生证的信息也可以作为学生信息的一部分,即在数据库中只存在学生一个表,而不是有学生和学生证两个表,并且这两个表中有一个一对一的关联关系. 如下: 有人或许会说,那我们就将学生和学生证的信息写在一个类中,则就不需要组件映射了,确实可以这样,但是,根据类的设计原则,我们一般都会将其设计为两个类,然后将学生证的信息作为一个

iOS学习笔记(八)——iOS网络通信http之NSURLConnection

转自:http://blog.csdn.net/xyz_lmn/article/details/8968182 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLConnection实现http通信的方式. NSURLConnection提供了异步请求.同步请求两种通信方式. 1.异步请求 iOS5.0 SDK NSURLConnection类新增的sendAsynchronousRequest:queu

python学习笔记八——正则表达式

1.元字符 []-常用来指定一个字符集:[abc];[a-z] -元字符在字符集中不起作用:[akm$] -补集匹配不在区间范围内的字符:[^5] ^-匹配行首 $-匹配行尾 \-后可加不同字符以表示不同意义,也可用于取消所有元字符 \d 匹配任何十进制数,相当于[0-9] \D 匹配任何非数字字符,相当于[^0-9] \s 匹配任何空白字符,相当于[\t\n\r\f\v] \S 匹配任何非空白字符 \w 匹配任何字母数字字符 \W 匹配任何非字母数字字符 *-匹配前一个字符零次或多次 +-至少

laravel3学习笔记(四)

原作者博客:ieqi.net ==================================================================================================== 视图 Laravel3遵循MVC模式,视图层负责将控制器处理好的数据展示出来,view层相关代码文件保存在application/views目录下,并且以php结尾. 因为PHP本身就可以和HTML混写的特性,一般而言,PHP框架的View层某种程度上也可以作为模板使