我有不同关系的模型.假设我的Entry模型属于供应商,所以通常我的模型文件中有一个supplier()方法.

到目前为止一切都那么好,当我有一些像Entry :: find(1) – >供应商这样的产品时,效果非常好.然而,什么是无效的是当我从Laravel中的通用DB ::查询中获取条目时,我显然无法访问supplier()方法,因为它不是Entry的实例.

$entries = DB::table('suppliers')

->join('entries', "supplier.id", '=', "entries.supplier_id")

->select('entries.*')

->where("supplier.name", 'like', "%{$name}%")

->get();

现在,如果我dd($entries);

我得到了预期的结果.但当我做类似的事情时:

dd($entries[0]->supplier); // or ->supplier()

我收到此错误:

Undefined property: stdClass::$supplier.

那么如何将(?)这些结果转换为Entry Eloquent模型,以便我可以利用这些关系?

这是$条目的原则:

Array

(

[0] => stdClass Object

(

[id] => 1

[user_id] => 0

[archived] => 0

[supplier_id] => 5

[customer_id] => 1

[contact] => dfgfdg

[commission] => dfgdfg

[entrance_date] => 2015-09-22 16:52:33

[cost_estimate] => 1

[status] => 1

[type] => 1

[watch_id] => 7

[reference] => dfgdfg

[serial_number] => 0

[delivery_date] => 2015-09-07 16:52:33

[articles_json] =>

[total_sales_cost_netto] =>

[gross_profit_netto] =>

[gross_profit_brutto] =>

[created_at] => 2015-09-09 20:10:02

[updated_at] => 2015-09-11 16:52:33

)

)

最佳答案 如@Zakaria所述,只需使用Eloquent:

$entries = Entry::with('supplier')

->join('supplier', "supplier.id", '=', "entries.supplier_id")

->where("supplier.name", 'like', "%{$name}%")

->get();

如果你真的需要“施放”他们,尝试这样的事情:

$entries = $yourDbQuery;

$c = new \Illuminate\Database\Eloquent\Collection;

foreach ($entries as $entry) {

$entryModel = new \App\Entry;

$c->add($entryModel->forceFill((array)$entry));

}

$c->load('supplier');

php 查看 实例 的方法,php – 从Laravel 5.1中的通用数据库查询中获取Eloquent模型的实例...相关推荐

  1. laravel mysql like_Laravel数据库查询中对 like 的值进行转义

    Laravel数据库查询中对 like 的值进行转义 龙行    PHP    2020-8-20    550    0评论 在laravel开发中,如果我们用到like模糊搜索$where[] = ...

  2. 数据库查询中的子查询方法

    一.简介. 关于SQL Server的查询,之前我们已经讲过了,如果没看过,可以翻一下我之前发的文献.本期我们来讲一下查询中的子查询方法. 二.子查询. 子查询是嵌套在另一个语句(如:[select] ...

  3. 只运行一个实例的方法

    在VC++ 中编程中,只运行一个实例的方法主要有两类: 1 遍历当前的所有窗口,查找相同的实例.为了便于查找,一般要事先设一个查找标志. 2 利用系统提供的互斥对象或信标,直接让系统抑制重复的实例. ...

  4. Laravel 5.1 文档攻略 —— Eloquent:模型关系

    简介 其实大家都知道,数据表之间都是可以关联的,前面讲过了,Eloquent ORM是数据模型操作代替表操作,那么表的关联查询,在Eloquent这里也就是模型间的关联查询,这就是本章的主要内容: E ...

  5. SQL Server数据库查询速度慢的原因和解决方法

    SQL Server数据库查询速度慢的原因和解决方法 参考文章: (1)SQL Server数据库查询速度慢的原因和解决方法 (2)https://www.cnblogs.com/MyChange/p ...

  6. SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

    SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 参考文章: (1)SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 (2)https://www.cnblogs.com/ml ...

  7. mysql中如何统计数据_mysql中的数据统计方法

    1 数据统计 使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目) mysql> select count(*) from emp; 查询结果如下: +----------+ | ...

  8. java中sql删除姓王的数据_JDBC删除数据实例

    在本教程将演示如何在JDBC应用程序中,删除数据库表中数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式的数据库表中删除数据记录. 要执行以下示例,需要用 ...

  9. laravel数据库: 查询构造器

    数据库: 查询构造器 获取结果 从表中检索所有行 get use Illuminate\Support\Facades\DB;$users = DB::table('users')->get() ...

最新文章

  1. 实验mongodb使用gridfs存放一个大文件
  2. android应用程序开发_Kotlin与Flutter:Android跨平台应用程序开发,到底选择哪个?...
  3. 连接mysql报zone时区错误
  4. SQL JOIN\SQL INNER JOIN 关键字\SQL LEFT JOIN 关键字\SQL RIGHT JOIN 关键字\SQL FULL JOIN 关键字...
  5. Exchange 2013 SP1部署系列7:发送连接器的配置
  6. vue 防止按钮重复点击
  7. Spring MVC学习总结(8)——Swagger入门详解
  8. python批量打印机excel_python批量设置多个Excel文件页眉页脚的脚本
  9. 设计模式 (五) 原型模式
  10. 【信号与系统】笔记(4-3)拉普拉斯逆变换
  11. WS2811B驱动使用及使用说明应用
  12. 用Python做一个连连看游戏辅助脚本,完整编程思路分享
  13. Unity 3D 射线检测方法
  14. 转载: dropout为啥要rescale?
  15. 英雄联盟修改服务器封3年,LOL自定义也被封三年 竟然因为这个原因?
  16. win2003桌面图标蓝底去除
  17. Linux下更改DNS地址
  18. 生物竞赛初赛报名已截止!各省往届真题超全汇总,建议收藏
  19. MyCat 学习笔记 第十五篇 . 数据分片后的迁移验证
  20. 2018年华为精英挑战赛初赛放置算法Java实现

热门文章

  1. python 内置标准库socketserver模块的思考
  2. HMTL label标签
  3. 200行代码写一个简易的dva
  4. HTML5与CSS3权威指南笔记案例1
  5. 让使用MSN就像访问网页一样容易!
  6. APPLE STORE
  7. 图片和文件上传js剖析
  8. 用JavaScript往DIV动态添加内容
  9. PostgreSQL学习手册(数据库维护) 转
  10. WP7之Application Bar控件