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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
PHP简单获取多个checkbox值的方法
Jun 13 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
php实现文件上传基本验证
Mar 04 PHP
php+mysql实现的无限分类方法类定义与使用示例
May 27 PHP
php实例化对象的实例方法
Nov 17 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将数据导入到Foxmail
2006/10/09 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Python常用库大全及简要说明
2020/01/17 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
2014年学校国庆主题活动方案
2014/09/16 职场文书
员工评语范文
2014/12/31 职场文书
医学生自荐信范文
2015/03/05 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
提档介绍信范文
2015/10/22 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书