在laravel中使用with实现动态添加where条件
关键点:闭包
模型:
public function getCollect() { return $this->belongsTo('App\Components\Misc\Models\CollectCareerTalk', 'id', 'career_talk_id'); } public function otherMethod() { return $this->belongsTo('App\Components\Misc\Models\OtherMethodModel', '主键', '外键'); }
仓库:
$this->model->with(['getCollect' => function ($q) use ($user_id) { $q->where('user_id', $user_id); }, 'otherMethod']) ->select('id', 'title') ->where([ 'id' => 1 ]) ->first();
注意:with可以连多个表(数组形式传参),没有动态条件的,可以直接讲模型方法名写到with的参数中,有动态条件的,写到闭包中
以上这篇在laravel中使用with实现动态添加where条件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
浅谈laravel中的关联查询with的问题
表结构 主表结构: Create Table CREATE TABLE `user` ( `uid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varbinary(255) NOT NULL, PRIMARY KEY (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=114001 DEFA
-
Laravel Eloquent ORM 多条件查询的例子
一.需求: 在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索.那么在model里就需要判断有那个字段组合,怎么组合. 网上找了很久,Laravel群里也问了几个,都说没有写过,于是自己写个吧.话不多说,见代码: function findByParam($param = array()) { $select = new Customer(); if (isset($param['name'])
-
laravel ORM关联关系中的 with和whereHas用法
with 渴求式预加载 可以有效的避免 N+1 问题,用法如下: $books = App\Book::with('author')->get(); 如果有多个关联关系可以用","隔开,还可以使用闭包来对关联关系进行限制,向下面这样: //查询所有的用户,查询条件:发布过标题中有first的post $users = User::with(['posts' => function ($query) { $query->where('title', 'like', '%
-
基于laravel where的高级使用方法
Laravel作为一个人见人爱的框架,相信很多人在使用,那就避免不了对Sql语句的应用,很多情况下,在多种字段作为条件查询使用where的时候,不需要复杂的原生语句, 使用一个闭包,就能达到你想要的效果. 以上这篇基于laravel where的高级使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
在laravel中使用with实现动态添加where条件
关键点:闭包 模型: public function getCollect() { return $this->belongsTo('App\Components\Misc\Models\CollectCareerTalk', 'id', 'career_talk_id'); } public function otherMethod() { return $this->belongsTo('App\Components\Misc\Models\OtherMethodModel', '主键',
-
Android中使用TagFlowLayout制作动态添加删除标签
效果图 简单的效果图(使用开源库)[FlowLayout](" https://github.com/hongyangAndroid/FlowLayout ") 步骤 导包 compile 'com.zhy:flowlayout-lib:1.0.3' <com.zhy.view.flowlayout.TagFlowLayout android:id="@+id/id_flowlayout" zhy:max_select="-1" andro
-
关于vue中根据用户权限动态添加路由的问题
根据用户的权限,展示不同的菜单页. 知识点 路由守卫(使用了前置守卫):根据用户角色判断要添加的路由 vuex:保存动态添加的路由 难点 每次路由发生变化时都需要调用一次路由守卫,并且store中的数据会在每次刷新的时候清空,因此需要判断store中是否有添加的动态路由. (若没有判断 则会一直添加 导致内存溢出) 根据角色判断路由 过滤动态路由 判断每条路由角色是否与登录传入的角色一致 <template> <div> <el-menu :default-active=&q
-
vue中动态添加style样式的几种写法总结
目录 vue动态添加style样式总结 对象 数组 三目运算符 多重值(浏览器会根据运行支持情况进行选择) 绑定data对象 vue3的style样式的特性 scoped 属性 在 scoped 内部,写全局的样式 通过v-bind 函数,在 CSS 中使用 JavaScript 中的变量 vue动态添加style样式总结 项目中可能会需要动态添加 style 行内样式,但是在长期维护的项目里面,尽量要避免使用. 注意: 1.凡是有 - 的style属性名都要变成驼峰式,比如font-size要
-
在python的类中动态添加属性与生成对象
本文将通过一下几个方面来一一进行解决 1.程序的主要功能 2.实现过程 3.类的定义 4.用生成器generator动态更新每个对象并返回对象 5.使用strip 去除不必要的字符 6.rematch匹配字符串 7.使用timestrptime提取字符串转化为时间对象 8.完整代码 程序的主要功能 现在有个存储用户信息的像表格一样的文档:第一行是属性,各个属性用逗号(,)分隔,从第二行开始每行是各个属性对应的值,每行代表一个用户.如何实现读入这个文档,每行输出一个用户对象呢? 另外还有4个小要求
-
JS动态添加与删除select中的Option对象(示例代码)
如下所示: 复制代码 代码如下: //动态删除select中的所有options: function delAllOptions(){ document.getElementById("user_dm").options.length=0; } //动态删除select中的某一项option: function delOneOption(index){ document.getElementById("user_dm").o
-
C#中GridView动态添加列的实现方法
本文实例讲述了C#中GridView动态添加列的实现方法.分享给大家供大家参考.具体如下: protected void Page_Load(object sender, EventArgs e) { TemplateField mycustomField = new TemplateField(); //创建列实例 mycustomField.ShowHeader = true; // 设置属性 LinkButton lb = new LinkButton(); lb.Text = "Dele
-
Android ListView中动态添加RaidoButton的实例详解
Android ListView中动态添加RaidoButton的实例详解 这里讲解的内容是:从数据库中取得数据,将这些数据的value值赋值给Radiobutton的text属性,将这些数据的key值赋值给radiobutton的key值.同时实现点击一整行,更换radiobutton选择. XML代码:主要是添加一个ListView控件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&q
-
js动态添加的DIV中的onclick事件简单实例
最简单的是这样: <input type="button" onclick="alert(this.value)" value="我是 button" /> 动态添加onclick事件: <input type="button" value="我是 button" id="bu"> <script type="text/javascript&quo
-
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
非常不多说了,直接给大家贴代码了,具体代码如下所示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,use
随机推荐
- jQuery多媒体插件jQuery Media Plugin使用详解
- 精通JavaScript的this关键字
- Bootstrap基本样式学习笔记之按钮(4)
- C#连接db2数据库的实现方法
- android monkey自动化测试改为java调用monkeyrunner Api
- MYSQL日志的正确删除方法详解
- js将滚动条滚动到指定位置的简单实现方法
- python实现代码行数统计示例分享
- 编写Go程序对Nginx服务器进行性能测试的方法
- AJAX对服务器返回XML的处理方法
- 网页打开新窗口target=_blank不符合标准
- 如何在Linux上安装Node.js
- 基于jquery二维码生成插件qrcode
- Android中Viewpager禁止滑动的实现
- Kloxo-MR VPS主机控制面板-安装使用及中文设置方法
- javascript实现滚动效果的数字时钟实例
- 举例理解C语言二维数组的指针指向问题
- php判断手机访问还是电脑访问示例分享
- Okhttp、Retrofit进度获取的方法(一行代码搞定)
- elementUI Tree 树形控件的官方使用文档