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排序算法(冒泡排序,快速排序)
Oct 09 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
thinkPHP模型初始化实例分析
Dec 03 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php curl优化下载微信头像的方法总结
Sep 07 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
Laravel框架控制器的request与response用法示例
Sep 30 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
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
高级销售员求职信
2013/10/25 职场文书
简历的自我评价
2014/02/03 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
股份合作协议书
2014/04/12 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
总经理检讨书
2014/09/15 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
伏羲庙导游词
2015/02/09 职场文书
学校会议通知范文
2015/04/15 职场文书
承诺书范本大全
2015/05/04 职场文书
Python如何让字典保持有序排列
2022/04/29 Python