Laravel 实现关系模型取出需要的字段

需求是从建立关系模型的数据表里面取出需要的字段,乱七八糟的不要。一个机构对应多个授权码,授权码里面的信息很杂乱,但是我取出关联模型的时候想把他们过滤掉。

 public function readOrganization($id) {

 $list = Organization::with(['authcodes' => function ($query) {$query->select('organization_id', 'auth_code');}])->find($id);

 if (empty($list)) {
 return '未查到结果!';
 }
 $list = $list->toArray();

 $list['authcodes'] = join(PHP_EOL, array_column($list['authcodes'], 'auth_code'));
 return view('organization/readOrganization', compact('list'));
 }

以上这篇Laravel 实现关系模型取出需要的字段就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用laravel的Eloquent模型如何获取数据库的指定列

    使用Laravel的ORM--Eloquent时,时常遇到的一个操作是取模型中的其中一些属性,对应的就是在数据库中取表的特定列. 如果使用DB门面写查询构造器,那只需要链式调用select()方法即可: $users = DB::table('users')->select('name', 'email as user_email')->get(); 使用Eloquent的话,有两种方式: 使用select() $users = User::select(['name'])->get()

  • Laravel Eloquent ORM 实现查询表中指定的字段

    在使用Laravel ORM的Model方法find, get, first方法获取数据对象时返回的数据对象的attributes属性数组里会包含数据表中所有的字段对应的键值关系, 那么如何在ORM查询时只返回数据表中指定字段的数据呢?很多时候,文档上没有写明的用法需要我们去看源码来探究的,下面我们就来看一下这三个方法的实现. 由于ORM依赖了QueryBuilder来实现查询, 在QueryBuilder的源码里通过查看get,first方法的实现可以到,他们都可以接收一个数组参数来指定要查询

  • Laravel框架模型的创建及模型对数据操作示例

    本文实例讲述了Laravel框架模型的创建及模型对数据操作.分享给大家供大家参考,具体如下: 模型创建: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Admin extends Model{ //指定表名 protected $table = 'wd_user'; //指定允许批量复制的字段 protected $fillable = ['username']; //指定id protected $prim

  • Laravel获取所有的数据库表及结构的方法

    遇到一个需求,需要修改数据库中所有包含email的字段的表,要把里面的长度改为128位.Laravel获取所有的表,然后循环判断表里面有没有email这个字段. 代码如下: use Illuminate\Support\Facades\Schema; use DB; public function getDatabaseColumns() { $tables = DB::select('show tables'); $tables = array_column($tables, 'Tables_

  • Laravel关系模型指定条件查询方法

    对于关系模型来说,有时候我们需要甄别关联后结果,例如,班级和学生是一对多关联,我现在查询班级,但是想只显示正常状态,即状态为1的学生,因为有的学生从这个班级里面删除了,状态是4,那么我们在查询的时候就可以使用如下语法: 1.定义关联关系: Class模型: public function learners() { return $this->belongsToMany('App\Models\Customer', 'learner_relation', 'class_id', 'learner_

  • Laravel 实现关系模型取出需要的字段

    需求是从建立关系模型的数据表里面取出需要的字段,乱七八糟的不要.一个机构对应多个授权码,授权码里面的信息很杂乱,但是我取出关联模型的时候想把他们过滤掉. public function readOrganization($id) { $list = Organization::with(['authcodes' => function ($query) {$query->select('organization_id', 'auth_code');}])->find($id); if (

  • 详解Laravel设置多态关系模型别名的方式

    作为 Laravel 的重度使用者肯定都对多态关系不默生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型与标签模型的关系就是 多态多对多(Many To Many (Polymorphic)) 如果我们给 ID 为 1 的文章打上两个标签,数据库标签关系表的的存储结果就是这样子: > select * from taggables; +--------+-------------+---------------+ | tag_id | taggable_id | taggable

  • Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()

    Laravel 5.5 Linux mint 18 PHPStorm 最近刚玩Laravel,手册源码还没来得及看完就跃跃欲试做了个小项目,其中有个需求是分组查询数据库中的一个字段并返回每个分组中的数量,还是去翻手册(手册确实够简单): groupBy 和 having 方法可用来对查询结果进行分组.having 方法的用法和 where 方法类似: $users = DB::table('users') ->groupBy('account_id') ->having('account_id

  • SQL关系模型的知识梳理总结

    目录 关系模型 主键 外键 一对多 多对多 一对一 索引 索引的概念与用法 唯一索引 Tips 关系模型 关系数据库是建立在关系模型上的.而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表. 表的每一行称为记录(Record),记录是一个逻辑意义上的数据. 表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段. 字段定义了数据类型(整型.浮点型.字符串.日期等),以及是否允许为NULL.注意NULL表示字段数据不存在.一个整型字段如果为NULL不表

  • laravel 之 Eloquent 模型修改器和序列化示例

    修改器 获取 <?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { public function getFirstNameAttribute($value) { return ucfirst($value); } } 使用 Laravel 加密器 来加密一个被保存在数据库中的值,当你从 Eloquent 模型访问该属性时该值将被自动解密. $user = App\User:

  • django 模型中的计算字段实例

    models.py class Person(models.Model): family_name= models.CharField(max_length=20, verbose_name='姓') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段要显示在修改页面中只能定义在只读字段中(否则不显示):readonly_fields = ('sc',) return '%s,

  • laravel 表单验证实现多个字段组合后唯一

    Laravel 表单验证器的几种使用方法 1.使用控制器的 validate 方法进行参数验证 /** * 保存一篇新的博客文章. * * @param Request $request * @return Response */ public function store(Request $request) { $this->validate($request, [ 'title' => 'required|unique:posts|max:255', 'body' => 'requi

  • thinkphp5.1的model模型自动更新update_time字段实例讲解

    1.model模型开启自动完成时间戳功能 <?php namespace app\common\model; use think\Model; use think\Db; class User extends Model{ //开启自动完成时间戳功能 protected $autoWriteTimestamp = true; } ?> 2.使用update方法更新 User::update(['name'='安阳'],['id'=>1]); Thinkphp中update方法的源代码如下

随机推荐