我试图在我正在构建的时间表系统中查询我的模型关系之一。我已经设置了以下模型:
User可以有许多时间表,并且可以属于许多雇员类型。
Timesheet可以有许多行
模型的设置如下:
用户模型:
<?php namespace App\Models\User;
....
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
/**
* The employee types that belong to the user.
*
* @retur
在我的问题上,我有一个商店。商店有许多过道,每个过道都有许多商品。我已经创建了3个表: Shop -> id and name Aisles -> id, shop_id, name Aisle_items -> id, aisle_id, name 我正在尝试检索商店和在单个查询中包含商品的过道列表。 我的商店模型有一个aisles()的hasMany函数 public function aisles() {
return $this->hasMany(Aisle::class, 'shop_id', 'id')->ord
我试图编写一个查询,该查询从模型中选择列,然后从关系表中选择一列。
团队模型
public function members(){
return $this->hasManyThrough('App\User', 'App\Membership', 'team_id', 'id', 'id', 'user_id');
}
成员(用户)模型
public function skills()
{
return $this->belongsToMany('App\S
假设你有这些模型关系:
提供HABTM类别
如何构建查找条件来查找至少有一个报价的所有类别。同时,优惠应为Offer.enabled => 1。因此,请查找至少有一个已启用优惠的所有类别。要在offer模型中签入的条件有几个,但一旦我可以检查enabled,我想我就可以检查任何其他字段。
我可以将habtm模型绑定到Category,但在这种情况下,我不能检查Offer.enabled条件。也许以某种方式使用了containable?sql查询将为:
SELECT DISTINCT Category.nome from categories as Category
LEFT JOIN c
我正在构建一个小型应用程序,其中两个模型之间具有多对多关系,如下所示:
class Contact extends Model
{
public function company()
{
return $this
->belongsToMany('App\Company', 'company_contact', 'company_id', 'contact_id')->withTimestamps();
}
}
现在,在检索时,我只需要通过数据透视表
在我的项目中,我在我的一个模型上编写了一个方法,它使用了它的一个关系和子关系,所以我不得不使用延迟加载:
class MyModel extends Model
{
public function doSomething()
{
// Lazy eager load relationship and subrelationship
$this->load('relationship', 'relationship.subrelationship');
$relatedItems = $thi
我有两个表要保存数据。其中一个有外键,所以我有一对多的关系。但是,我不明白如何同时将数据保存到两个表中。我有一个查询,它包含一个表的数据,另一个查询应该附加到第一个表。
这是主要的模式
class Site extends Model
{
protected $fillable = ['path', 'site_link'];
public $timestamps = false;
public function features() {
return $this->hasMany('App\SiteFe
我有一个可以想象的产品
Product.php
public function imageable()
{
return $this->morphTo('imageable');
}
还有一辆车,它变成了
public function products()
{
return $this->morphMany('App\Product', 'imageable');
}
例如,如果我想要得到汽车模型的话,我可以用$product->imageable->model来称呼它。
但是我如何在查询中做到这一点,特别是
我有属于IssueCat模型的ContactForm模型。这种关系在模型中定义如下:
class ContactForm extends \Eloquent {
// Add your validation rules here
public static $rules = [
// 'title' => 'required'
];
// Don't forget to fill this array
protected $fillable = [];
public functi
表
VENDOR
id name approved
PRODUCT
id name price instock fky_prod_vendor_id
Relationship
VENDOR(hasMany products()) <- (one-to-many) -> (hasOne vendor())PRODUCT
查询
考虑到关系是在模型中定义的,我如何才能使用雄辩的口才来获得认可的供应商的所有产品的库存?
我的SQL如下所示,但我需要使用雄辩的关系来实现以下目标。
select product.id
from product, ven
我有一个雄辩的模型,它有一个相关的模型:
public function option() {
return $this->hasOne('RepairOption', 'repair_item_id');
}
public function setOptionArrayAttribute($values)
{
$this->option->update($values);
}
当我创建模型时,它不一定有相关的模型。当我更新它时,我可能会添加一个选项,也可能不会。
因此,我需要检查相关模型是否存在,以分别更新它或创建它:
$m
我还没有发现我怎么能强迫一个模型重新询问它的孩子。
模型
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Model1 extends Model
{
public function seasons() {
return $this->hasMany('App\Models\Seasons', 'series_id', 'id');
}
}
当我在整个应用程序逻辑中调用$instanceModel1->seaso
我想通过员工查询公司名称。为什么没有得到任何结果?它不会给出任何错误。 公司模型 public function employees() {
return $this->hasMany(Employees::class);
} 员工模型 public function companies() {
return $this->belongsTo(Companies::class);
} 员工控制器 public function createIndex() {
$employees = Em
我是laravel的新手,我已经知道如何使用查询生成器连接表了。我只是想学习如何使用关系,以避免重复代码,并简化它。我可以加入两张桌子,但我不能得到第三张桌子。
我喜欢显示来自Tasks表的员工分配的任务信息,这个表只有需要连接到Projects表的项目id。其他员工可以与其他员工一起参与现有的项目。
Employee模型:
public function tasks()
{
return $this->hasMany('\App\Task', 'project_coder', 'id');
}
Task模型:
public fun
我在练习laravel和im在查询关系时感到困惑,我有两个表(用户和角色)
在我的用户模型中
use SoftDeletes;
public function role(){
return $this->hasOne(Role::class);
}
在我的榜样中
use SoftDeletes;
public function user(){
return $this->belongsTo(User::class);
}
这是我的角色表结构
这是供用户使用的表结构
如何根据用户表查询角色
我有一个查询作用域方法,它根据Foo模型的作者过滤结果。复杂的是,作者并没有直接的关系。
Foo属于Bar,Bar属于User。如果Foo属于User,我可以这样做:
public function scopeAuthorOnly($query, User $user)
{
return $query->whereuser_id($user->id);
}
这显然行不通,因为Foo模型没有user_id列,而是有一个bar_id列。但是,我不确定如何以过滤user_id的方式构建查询。
有什么建议吗?
我有表products和job_statuses,它们在迁移产品中有关系: $table->unsignedBigInteger('job_status_id')->index()->nullable();
$table->foreign('job_status_id')->references('id')->on('job_statuses')->onDelete('set null'); 在产品模型中: public function job()
{
retu
我的桌子结构是这样的:
id user_id gift
1 1 1000
但是现在我想把gift移到另一张桌子上,因为礼物可以在不同的日期给用户不止一次。在我的项目中,我在很多地方都使用过$user->gift,我不想更改代码。因此,我想在User模型中创建一个名为getGiftAttribute的方法。在这个方法中,我将得到礼物的总和。但是现在的问题是,每次在我的代码中调用$user->gift时,它都会查询数据库,但我希望它只被调用一次。和以前一样,如果我使用$user->gift,它只会查询一次。那么,如何才能得到gif