Eloquent是Laravel自己的对象关系映射器。它被命名为“Eloquent”,因为它允许您使用雄辩和富有表现力的语法来处理数据库对象和关系。
laravel:用 `foreach ( Mymodel :: all ( ) as $object)` 替换的最佳方法是什么?
我有一个购物车模型,它有一个访问器方法调用 isFullAccepted(),在检查关系状态后返回 true/false。 在另一个访问器中调用 leftingCarts() 我返回所有购物车...
当 Laravel Eloquent 使用 select 并且模型具有自定义属性时,将运行什么查询?
在 Laravel Eloquent 中,我使用 select 仅获取集合中的特定列: $门票 = 门票 ::select('id', 'title', 'date') // 所以只有这些列 ->限制(100...
这是我当前的设置: 这是我当前的设置: <?php namespace App\Models; use Exception; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class Employee extends Model { protected $table = 'employees'; protected $fillable = [ 'first_name', 'last_name', 'gender', 'birthdate', 'nationality_id', 'company_id', ]; public function positions(): BelongsToMany { return $this->belongsToMany(Position::class) ->using(EmployeePosition::class); } } <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class Position extends Model { protected $table = 'positions'; protected $fillable = [ 'name', ]; public function employees(): BelongsToMany { return $this->belongsToMany(Employee::class) ->using(EmployeePosition::class); } } 它们通过数据透视表相互连接,根据文档将其配置为“自定义中间表模型”。 我设置了以下列: | id | employee_id | position_id | <?php namespace App\Models; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasManyThrough; use Illuminate\Database\Eloquent\Relations\Pivot; class EmployeePosition extends Pivot { /** * Indicates if the IDs are auto-incrementing. * * @var bool */ public $incrementing = true; protected $table = 'employee_position'; } 有了$employee,到目前为止一切正常: $employee->load('positions') 接下来,我还创建了一个employee_position_technologies表: <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class EmployeePositionTechnology extends Model { protected $table = 'employee_position_technologies'; protected $fillable = [ 'employee_position_id', 'technology_id', ]; } 我想给“员工职位”分配很多“技术”。 我也做到了。 现在,我想要实现的是将技术相应地加载到员工职位上: $employee->load('positions.technologies') 为此,我修改了 EmployeePosition 类,添加了 technologies() 方法,如下所示: public function technologies() { return $this->hasManyThrough( Technology::class, EmployeePositionTechnology::class, 'employee_position_id', 'id', 'position_id', 'technology_id' ); } 这不起作用,因为 technologies() 方法似乎是从 Position 模型。 我发现要访问“中间表模型”,我们必须使用以下命令: $employee->position->pivot->technologies 所以我尝试了: $employee->load('positions.pivot.technologies'); 这似乎也不起作用,有错误 Call to undefined relationship [pivot] on model [App\Models\Position]. 接下来,虽然我不喜欢,但我尝试了: $employee->load('positions'); $employee->positions->each(function ($position) { $position->pivot->load('technologies'); }); 这似乎有效,我可以访问该方法,但 technologies 的结果 position 关系为空。 我尝试转储查询,它似乎是正确的: select * from "technologies" inner join "employee_position_technologies" on "employee_position_technologies"."technology_id" = "technologies"."id" where "employee_position_technologies"."employee_position_id" = ? 我错过了什么? 您是否尝试过使用 with() 方法代替 load() 方法来急切加载您要加载的关系?您可以使用 with 关键字来实现此目的,如下所示,其中关系作为参数传递给 with 方法 $employee->positions()->with('technologies')->get(); 这将返回为该员工找到的所有职位以及每个职位的相关技术(如果有)。您可以从 Laravel 官方网站阅读更多有关使用 with 方法进行预加载的信息
Laravel 5.3 Eloquent 关系 - 用户、角色、页面和权限
我正在为我的应用程序开发一种 ACL,使用 4 个表: 我可以获得以下关系 用户和角色: $user = App\Models\User::find( Auth::user()->id ); // foreach( $用户->角色...
我对口才不是很熟悉。我有两个数据库模式。我已经尝试过使用和不使用 json 字段,但我找不到解决方案来获取: 登录用户可以修改的所有对象...
我接手的一个项目以一种我以前从未见过的相当奇怪的方式建立了关系。 考虑这样一个例子: 公共函数邀请():BelongsToMany { 返回 $this->
我有 2 个表用于在 laravel eloquent 中获取内连接查询记录,但无法使用组合数据获取。 表:类别 ID 姓名 猫状态 表:图像 ID 标题 描述 图像状态 #图片
如何在“Eloquent ORM”中获得“自然顺序”?在表中我有“文本”列(字符串)。 正常顺序:Model::orderBy('text') '值1' '值 12' '值 23' '值3' '值8' 我需要这个: '
我尝试从 .env 文件访问 api 密钥时遇到错误。我已经尝试了互联网上的几个页面来解决问题,但它没有给我任何解决方案。我尝试将服务添加到 services.php 但是
Laravel Eloquent 查询使用 Case/When 动态应用条件
我正在尝试根据机器人表的 start_date 和 end_date 列的值应用一组不同的日期过滤器 健康)状况 如果机器人开始日期 && 机器人结束日期为 bot...
当没有调用显式删除操作时,如何在 Laravel 中记录意外的数据删除?
我正在开发 Laravel 应用程序,遇到了一些数据被意外删除的问题,但我无法确定删除发生在哪里。我正在使用以下代码...
使用 Eloquent 根据列/属性的最高整数获取结果的最佳方法
我面临着必须重构模型的问题,以便每个模型能够基于一个刻度存在多个实例。可以有很多刻度,它们从零开始递增......
在播种过程中,我遇到了这个错误“尝试读取 null 上的属性“id””
在播种过程中,我遇到了这个错误: INFO 种子数据库。 数据库\Seeders\RoleSeeder ................................正在运行 错误异常 尝试读取 null 属性“id” 在 C:\xampp\htdocs\
Phpstan 调用未定义的方法 Illuminate\Database\Eloquent\Builder::join()
我的php版本是7.1.31,laravel版本是4.2。 我想要 phpstan 作为我的静态分析工具。 但是当我运行它时。它输出了很多错误。 例子是: 调用未定义的方法
我在 Laravel 中遇到一个问题,其中某些关键字(例如电影标题中的“AND”)被解释为 where 子句中的 SQL 语法。这会导致查询中断...
我在 Laravel 中遇到一个问题,其中某些关键字(例如电影标题中的“AND”)被解释为 where 子句中的 SQL 语法。这会导致查询中断...
PHP Laravel 查询错误,slug 中保留关键字导致 SQL 语法问题
我在 Laravel 中遇到一个问题,其中某些关键字(例如电影标题中的“AND”)被解释为 where 子句中的 SQL 语法。这会导致查询中断...
在播种过程中,我必须面对这个错误“尝试读取 null 上的属性“id””
在播种过程中,我必须面对这个错误: INFO 种子数据库。 数据库\Seeders\RoleSeeder ................................正在运行 错误异常 尝试读取 null 属性“id” 在 C:\xampp\
如何更改laravel的created_at和updated_at值的默认格式
我是 Laravel 的新手。我正在使用 laravel 创建一个应用程序。当我创建帖子时,“created_at”和“updated_at”的值如下所示: 2014-06-26 04:07:31 2014-06-26 04:07:31 ...
我有两个 Eloquent 模型(例如:书籍和作者),它们具有一对多关系(一个作者可以拥有多本书,每本书只有一个作者)。该数据库还包含具有...