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

 更新时间:2019年04月16日 10:21:20   作者:Romolo  
这篇文章主要给大家总结介绍了关于Laravel中9个不经常用的小技巧,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

众所周知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 cookie 详解使用实例

    php cookie 详解使用实例

    这篇文章主要介绍了php cookie 详解使用实例的相关资料,需要的朋友可以参考下
    2016-11-11
  • PHP动态输出JavaScript代码实例

    PHP动态输出JavaScript代码实例

    这篇文章主要介绍了PHP动态输出JS代码实例,本文直接给出代码实例,一看就懂,简洁明了,需要的朋友可以参考下
    2015-02-02
  • php 网上商城促销设计实例代码

    php 网上商城促销设计实例代码

    前一篇文章讲的是购物车的设计,这篇来讲下关于促销的。支持的促销类似于,打折,买几赠几,满多少钱送礼品等等。用到策略模式
    2012-02-02
  • ThinkPHP登录功能的实现方法

    ThinkPHP登录功能的实现方法

    这篇文章主要介绍了ThinkPHP登录功能的实现方法,是采用ThinkPHP进行会员系统开发所必备的重要功能,需要的朋友可以参考下
    2014-08-08
  • PHP编写RESTful接口的方法

    PHP编写RESTful接口的方法

    这篇文章主要为大家详细介绍了PHP编写RESTful接口的方法,如何使用PHP编写RESTful接口,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • PHP 验证登陆类分享

    PHP 验证登陆类分享

    本文给大家介绍的是用php实现的用户登录与验证的一段代码,没有把登录和数据库查询分开,有需要的朋友,可以参考学习下
    2015-03-03
  • ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法

    ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法

    这篇文章主要介绍了ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法,是ThinkPHP文件上传中一个比较典型的应用技巧,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • PHP实现字母数字混合验证码功能

    PHP实现字母数字混合验证码功能

    PHP实现字母数字混合验证码,支持自定义验证码、验证码图片、宽度、高度、个数、背景图片,本文给大家分享实例代码,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • Laravel框架路由与MVC实例详解

    Laravel框架路由与MVC实例详解

    这篇文章主要介绍了Laravel框架路由与MVC,结合实例形式详细分析了laravel框架路由、MVC的模型、视图、控制器相关概念、原理及使用技巧,需要的朋友可以参考下
    2020-01-01
  • 小程序微信支付功能配置方法示例详解【基于thinkPHP】

    小程序微信支付功能配置方法示例详解【基于thinkPHP】

    这篇文章主要介绍了小程序微信支付功能配置方法,结合实例形式分析了基于thinkPHP的微信小程序支付功能相关操作技巧与注意事项,需要的朋友可以参考下
    2019-05-05

最新评论