Laravel中9个不经常用的小技巧汇总


Posted in PHP onApril 16, 2019

前言

众所周知Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。下面这篇文章主要给大家总结了一些Laravel不经常用的小技巧,下面话不多说了,来一起看看详细的介绍吧

1. 更新父表的timestamps

如果你想在更新关联表的同时,更新父表的timestamps,你只需要在关联表的model中添加touches属性。
比如我们有Post和Comment两个关联模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
 /**
  * 要更新的所有关联表
  *
  * @var array
  */
 protected $touches = ['post'];

 /**
  * Get the post that the comment belongs to.
  */
 public function post()
 {
  return $this->belongsTo('App\Post');
 }
}

2. 懒加载指定字段

$posts = App\Post::with('comment:id,name')->get();

3. 跳转指定控制器并附带参数

return redirect()->action('SomeController@method', ['param' => $value]);

4. 关联时使用withDefault()

在调用关联时,如果另一个模型不存在,系统会抛出一个致命错误,例如 $comment->post->title,那么我们就需要使用withDefault()

...
public function post()
{
 return $this->belongsTo(App\Post::class)->withDefault();
}

5. 两层循环中使用$loop

在blade的foreach中,如果你想获取外层循环的变量

@foreach ($users as $user)  
 @foreach ($user->posts as $post)   
 @if ($loop->parent->first)    
  This is first iteration of the parent loop.   
 @endif  
 @endforeach 
@endforeach

6. 浏览邮件而不发送

如果你使用的是mailables来发送邮件,你可以只展示而不发送邮件

Route::get('/mailable', function () {
 $invoice = App\Invoice::find(1);
 return new App\Mail\InvoicePaid($invoice);
});

7. 通过关联查询记录

在hasMany关联关系中,你可以查询出关联记录必须大于5的记录

$posts = Post::has('comment', '>', 5)->get();

8. 软删除

查看包含软删除的记录

$posts = Post::withTrashed()->get();

查看仅被软删除的记录

$posts = Post::onlyTrashed()->get();

恢复软删除的模型

Post::withTrashed()->restore();

9. Eloquent时间方法

$posts = Post::whereDate('created_at', '2018-01-31')->get(); 
$posts = Post::whereMonth('created_at', '12')->get(); 
$posts = Post::whereDay('created_at', '31')->get(); 
$posts = Post::whereYear('created_at', date('Y'))->get(); 
$posts = Post::whereTime('created_at', '=', '14:13:58')->get();

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
php使用百度天气接口示例
Apr 22 PHP
PHP生成图片验证码、点击切换实例
Jun 25 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
基于php判断客户端类型
Oct 14 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
PHP中散列密码的安全性分析
Jul 26 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 #PHP
Laravel框架文件上传功能实现方法示例
Apr 16 #PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 #PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 #PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 #PHP
PHP实现读取文件夹及批量重命名文件操作示例
Apr 15 #PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 #PHP
You might like
PHP新手上路(八)
2006/10/09 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php计算年龄精准到年月日
2015/11/17 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
javascript显式类型转换实例分析
2015/04/25 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python计算圆周率pi的方法
2015/07/11 Python
Python解析树及树的遍历
2016/02/03 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python中optparser库用法实例详解
2018/01/26 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
浅析Python 序列化与反序列化
2020/08/05 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
python爬取微博评论的实例讲解
2021/01/15 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
有个性的自我评价范文
2013/11/15 职场文书
销售经理竞聘书
2014/03/31 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
锅炉工岗位职责
2015/02/13 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs