1.自定义字段验证错误信息

 $this->validate($request,
['name' => 'required|max:50'],
['name.required' => '名称必须','name.max' => '名称长度不能大于:max']
);

  

2.简单打印sql语句

DB::connection()->enableQueryLog();
$user = User::find(1);
dd(DB::getQueryLog());

  

3.fill填充数组
有时候我们需要用一个数组来填充model,又希望返回bool值(create默认返回的是一个model实例)

$model->fill($array)->save();

  

4.getDirty获取受影响的属性
我们建立了model,并更新了属性,但在保存的时候,我们需要where判断,来防止数据已经被另一个用户更改,但save无法和where并用,只能使用update,可以使用getDirty获取受影响的属性作为数组传入update

$model = TestModel::first(1);
$model->name = 'test';
$model->where('version', $model->version)->update($model->getDirty());

  

5.update和save
如果模型不带where

$task = Task::first(1);
$task->update(['name' => 'test']); //返回bool值,这由上层的model类处理

  

如果带where

$task->where('id', 1)->update(['name' => 'test']); //这由下层builder类处理,返回受影响的记录数

  

6.where的另一种用法

$model->first($id);
$model->where('name', $name)->first();
$model->whereName($name)->first();

  

7.relation中的where

public function category()
{
return $this->belongsTo('myCategoryModel', 'categories_id')->where('users_id', Auth::user()->id);
}

  

8.日期过滤

$q->whereDate('created_at', date('Y-m-d'));
$q->whereDay('created_at', date('d'));
$q->whereMonth('created_at', date('m'));
$q->whereYear('created_at', date('Y'));

  

9.save保存模型实例的时候设置timestamps

$product = Product::find($id);
$product->updated_at = '2015 -01-01 10:00:00';
$product->save(['timestamps' => false]);

  

10.orderBy

$model->orderBy('id', 'asc')->get();

等同于

$model->orderBy('id')->get();

  

11.lists

$model->lists(field); //返回field的集合,集合中是一个field的数组,键名为数字
$model->lists(field1,field2); //返回field的集合,集合中是一个数组,键名为field2,值为field1

  

12.用关联来过滤主model中的数据

class Category extends Model
{
public function products()
{
return $this->hasMany('App\Product');
}
}
public function getIndex()
{
# 这条语句的意思是,渴求式记在products,并且Category中至少有1个产品
$categories = Category::with('products')->has('products')->get();
# 这条语句的意思是,渴求式记在products,并且Category中至少有3个产品
$categories = Category::with('products')->has('products', '>=', 3)->get();
return view('categories.index', compact('categories'));
}

  

13.保存数据的时候返回关联

public function getUser()
{
$task = new Task();
$task->user_id = 1;
$task->name = 'test';
$task->save();
return $task->user; // 这将返回一个id为1的user模型
}

  

14.模板赋值

view('posts.index')->with('posts', $posts);
//等同于
view('posts.index')->withPosts($posts);

  

15.模板中的第一条和最后一条处理

@foreach ($menu as $item)

<div @if ($item != reset($menu)) class="hidden" @endif>

<h2>{{ $item->title }}</h2>

     </div>
@endforeach @foreach ($menu as $item) <div @if ($item == end($menu)) class="no_margin" @endif> <h2>{{ $item->title }}</h2> </div> @endforeach

  

16.find

$collection = App\Person::find([1, 2, 3]);

  

17.where对集合的继续过滤

$tasks = Task::get();
$ceshi2 = $tasks->where('name', 'ceshi2');

  

18.where和lists结合使用

$first_name = $collection->where('meta_key', 'first_name')->lists('value')[0];

  

19.自定义错误

return response()->view('errors.default', ['exception' => $e], 500); //500是页面状态相应

  

20.模型初始化

$task = new Task(['name'=>'test']);
$task->save();

  

Laravel之备忘项(不定期更新)的更多相关文章

  1. laravel相关备忘

    此次笔记采用的是laravel5.1版本 1.从gitcheckout下来后,首先在env修改数据库相关 2.默认laravel没有model目录,默认有一个model文件User.php放在app里 ...

  2. git备忘(长久更新)

    一直想了解一下git,正好最近的有一个问题就是,实验室写的代码,怎么同步到自己宿舍的笔记本上面来.最开始想用dropbox,但是用VS的人都知道,工程文件里面会给你生成乱七八糟的很多东西,很占空间,d ...

  3. T-SQL备忘-表连接更新

    1.update a inner join b on a.id=b.id set a.name=b.name where ...   2.update table1 set a.name = b.na ...

  4. Linux 命令备忘(持续更新中……)

    Linux命令 grep 1. 使用grep 筛选内容,多条件筛选用 grep - E "条件1|条件2" (满足条件1或条件2的均展示) 2. grep '条件3'|grep - ...

  5. laravel知识点备忘

    1.连表查询:select * from goods left join shop on goods.shopid=shop.shopid; DB::table('goods') ->leftJ ...

  6. mac指令备忘

    在这里简单记录下最近使用的快捷键,备忘,随时更新. 简单指令记录 mkdir 创建路径 pwd 输出当前路径 ls 查看目录 cd touch 创建文件 tree 输出目录树 mv 源文件 目标文件或 ...

  7. [转载]备忘:oh my zsh 的安装、更新、删除

    备忘:oh my zsh 的安装.更新.删除 傅易君 关注  0.8 2016.09.25 00:56* 字数 68 阅读 14920评论 0喜欢 4 查看系统当前 shell $ cat /etc/ ...

  8. 关于Verilog HDL的一些技巧、易错、易忘点(不定期更新)

    本文记录一些关于Verilog HDL的一些技巧.易错.易忘点等(主要是语法上),一方面是方便自己忘记语法时进行查阅翻看,另一方面是分享给大家,如果有错的话,希望大家能够评论指出. 关键词: ·技巧篇 ...

  9. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

随机推荐

  1. python常用20库

    python核心库和统计 简述 1. Requests.最着名的http库由kenneth reitz编写.这是每个python开发人员必备的. 2. Scrapy.如果您参与webscraping, ...

  2. java集合类深入分析之PriorityQueue(二)

    PriorityQueue介绍 在平时的编程工作中似乎很少碰到PriorityQueue(优先队列) ,故很多人一开始看到优先队列的时候还会有点迷惑.优先队列本质上就是一个最小堆.前面一篇文章介绍了堆 ...

  3. 求强连通块_Tarjan算法_C++

    好久没有写算法了,就放一个 Tarjan 上来凑凑数哈 强连通块由若干个点组成,任意点与点之间可以之间或间接到达,显然可以看作一个环 下面是伪代码 强记:dfn为时间不变,low取最小,下一个dfn有 ...

  4. UVA 10594 Data Flow

    无向图费用流 还有一段话摘自别人博客 这道题是无向图的最小费用最大流问题,看清楚是无向图的.这么说无向图和有向图的费用流问题有什么区别呢?主要是反向边的问题.首先我们说一下最大流问题中的反向边,我们需 ...

  5. gdb 调试打印

    gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式 x/ (n,f,u为可选参数) n: 需要显示的内存单元个数,也就是从当前地址向后 ...

  6. 【C语言】32位,64位机器sizeof区别

    float, double : 采用IEEE标准浮点数格式,格式固定 float 32bit, double 64bit int一般和CPU寄存器长度有关,不过也和编译器,汇编器有关 由于C ,C++ ...

  7. 【linux高级程序设计】(第十三章)Linux Socket网络编程基础 3

    使用之前的函数实现的简单聊天程序 TCP协议 双方实时发送/接收消息 实现后的问题: 可能是我虚拟机的IP地址配得有问题吧.在一台电脑上面开两个终端,用127.0.0.1的IP收发可以互通.但是两个虚 ...

  8. hdu 5142(数学-进制转换)

    NPY and FFT Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  9. AC日记——Valued Keys codeforces 801B

    801B - Valued Keys 思路: 水题... 来,上代码: #include <cstdio> #include <cstring> #include <io ...

  10. Reporting Services 的一些问题

    做报表有一段时间,感觉Reporting Services还是比较麻烦的,因为网上的例子有的比较少,很多地方都需要自己摸索,说说我遇到的一些问题 1:页首的设计 一些固定显示的资料放在页首里面比较方便 ...