标签 laravel 下的文章

判断Laravel Eloquent获取数据结果集是否为空

在使用 Laravel Eloquent 模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用 is_nullempty 是无法判段它结果集是否为空的。

var_dump 之后我们很容易发现,即使取到的空结果集, Eloquent 仍然会返回 Illuminate\Database\Eloquent\Collection 对象实例。
其实,Eloquent 已经给我们封装几个判断方法。

$result = Model::where(...)->get();
//不为空则
if ($result->first()) { } 
if (!$result->isEmpty()) { }
if ($result->count()) { }

参考网站:http://stackoverflow.com/questions/20563166/eloquent-collection-counting-and-detect-empty

Laravel 4 项目开发与命名规范

为了便于后期维护,现对使用 Laravel 4.2.x 的项目做出开发与命名上的约束。本文只对某些重点做出具体约束,可能存在遗漏的地方,欢迎补充说明。

自动加载

Laravel 使用 Composer 进行源码管理,自动加载推荐遵循 PSR-4 规范,可以到此查阅相关文档:

PSR-4中译文

Composer Autoload不完全中译文

数据库命名规范

参照 Laravel 模型相关内容,我们可以看出,Laravel 倾向于使用复数名词作为表名,Laravel 框架自带了一个 User 模型操作 users 用户表。

推荐使用三个小写字母以上的字符串作为数据库表前缀,如芽丝内容管理框架就使用yascmf_作为表前缀。

数据库表默认使用utf8_unicode_ci作为排序规则。

数据表名与表字段推荐使用全小写英文字母,单词之间采用下划线 (_) 作为分隔符;数据库字段应避免使用 MySQL 关键字(如descnullcountorder 等 );数据库表及字段在设计时应添加与保留注释(即 COMMENT )内容。

使用Laravel ORM时,可能还需要添加额外的字段,如自动时间戳记录的字段 created_atupdated_atdeleted_at 等。

SQL 语句的编写中,凡是 SQL 语句的关键字一律大写,如:SELECTORDER BYGROUP BYFROMWHEREUPDATEINSERT INTOSETBEGINEND 等。

遵守第三范式 3NF 标准的规定:

A.表内的每一个值都只能被表达一次。

B.表内的每一行都应该被唯一的标识(有唯一键)。

C.表内不应该存储依赖于其他键的非键信息。

主键(包括联合主键)与索引名应表义清晰明确,唯一索引建议带上_unique缀名,以与其它普通索引区别。

- 阅读剩余部分 -

Laravel入门教程——一个简单cms的实现(05)

作者: douyasi
网站:https://douyasi.com/category/startlaravel/
备注:本教程是在当前最新Laravel稳定版v4.2.X下实现的,其它相异版本如果有问题请自行排除。
本文为作者原创记录,转载请保留署名与来源。

RESTFUL路由与控制器

RESTFUL详解

资源控制器可以简单的建立跟资源相关的 RESTful 控制器。下面,我们开始演示操作文章资源。

命令行执行以下命令建立控制器:

php artisan controller:make ArticleController

然后我们可以注册一个资源化路由至控制器上:

Route::resource('article', 'ArticleController');

打开 /app/controllers/ 目录,我们可以看见框架已经自动地给我们生成 ArticleController.php 文件,打开我们看看,大致可以看到以下结构:




- 阅读剩余部分 -

Laravel入门教程——一个简单cms的实现(04)

作者: douyasi
网站:https://douyasi.com/category/startlaravel/
备注:本教程是在当前最新Laravel稳定版v4.2.X下实现的,其它相异版本如果有问题请自行排除。
本文为作者原创记录,转载请保留署名与来源。

页面显示与路由控制(二)

Auth继续深入使用

上一节我们只是简单地使用了下 Auth,这一节打算继续深入使用 Auth。在使用 Auth 时我们可能会(反正我觉得是一定会)遇到诸多问题,这是因为 Laravel 作者的一些认证构思与你我想象的认证构思不同。

Auth 默认使用 email 作为认证验证的一个条件,还提供了诸如“记住我”快捷认证功能和找回登录密码凭证的方法。

使用 Auth::logout() 退出用户时,我发现框架报了一个错误,错误界面在此:

logout_error

错误原因是 admin 数据表中没有 remember_token 字段。在数据库设计时我就没考虑过这个字段,但 Auth 认证时有使用到,审查下 Laravel Auth 相关代码,我们可以发现,logout调用了 refreshRememberToken 方法。

为此,我们需要修改admin数据表相关字段。

admin添加remember_token字段,也添加上email字段,以配合Auth使用。




- 阅读剩余部分 -

Laravel 4开发人员必用扩展包

提供一些Laravel 4开发人员必用扩展包,后续会有补充。
参考来源:http://blog.csdn.net/iefreer/article/details/37542395

HTML压缩器(Laravel HTML Minify)

压缩模版页面空白符,配合gzip,有效减少页面大小,提升页面加载速度。

"require": {
    "fitztrev/laravel-html-minify": "1.*"
}

Laravel HTML Minify

代码生成器(Laravel Generators)

使用简单的命令行就可以自动根据代码模板生成 Model/View/Controller 代码以及模块(Module)。

"require-dev": {
    "way/generators": "~2.0"
}

- 阅读剩余部分 -