Laravel 多租户 Return 不明确的键
Laravel Multi Tenancy Return Ambigous Key
在我的 laravel 项目中,我正在使用多租户,当我使用 Elequent 在我的表之间进行连接时,它 returns 列 'user_id' 中的 where 子句不明确
这是我的租赁代码:
<?php
namespace App\Traits;
use Illuminate\Database\Eloquent\Builder;
trait MultiTenintable
{
public static function bootMultiTenintable()
{
if (auth()->check()) {
static::creating(function ($model) {
$model->user_id=auth()->id();
});
static::addGlobalScope('user_id', function (Builder $builder) {
return $builder->where('user_id', auth()->id());
});
}
}
您将进行的每个查询都会有一个 where user_id = ?
,因此您必须强制使用 table 名称:
public static function bootMultiTenintable()
{
if (auth()->check()) {
static::creating(function ($model) {
$model->user_id=auth()->id();
});
static::addGlobalScope('user_id', function (Builder $builder) {
return $builder->where((new self())->getTable() . '.user_id', auth()->id());
});
}
}
在我的 laravel 项目中,我正在使用多租户,当我使用 Elequent 在我的表之间进行连接时,它 returns 列 'user_id' 中的 where 子句不明确 这是我的租赁代码:
<?php
namespace App\Traits;
use Illuminate\Database\Eloquent\Builder;
trait MultiTenintable
{
public static function bootMultiTenintable()
{
if (auth()->check()) {
static::creating(function ($model) {
$model->user_id=auth()->id();
});
static::addGlobalScope('user_id', function (Builder $builder) {
return $builder->where('user_id', auth()->id());
});
}
}
您将进行的每个查询都会有一个 where user_id = ?
,因此您必须强制使用 table 名称:
public static function bootMultiTenintable()
{
if (auth()->check()) {
static::creating(function ($model) {
$model->user_id=auth()->id();
});
static::addGlobalScope('user_id', function (Builder $builder) {
return $builder->where((new self())->getTable() . '.user_id', auth()->id());
});
}
}