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面向对象全攻略 (八)重载新的方法
Sep 30 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
深入php之规范编程命名小结
May 15 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
php快递单号查询接口使用示例
May 05 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
php数值计算num类简单操作示例
May 15 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP $_FILES中error返回值详解
2014/01/30 PHP
php字符串函数学习之substr()
2015/03/27 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python程序语言快速上手教程
2012/07/18 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python之web模板应用
2017/12/26 Python
详解python数据结构和算法
2019/04/18 Python
django 信号调度机制详解
2019/07/19 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
python实现感知机模型的示例
2020/09/30 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
听课评语大全
2014/04/30 职场文书
安全标语大全
2014/06/10 职场文书
校运会宣传稿大全
2015/07/23 职场文书
小学数学教师研修日志
2015/11/13 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
手残删除python之后的补救方法
2021/06/26 Python