php - Laravel 多对多关系引发 SQL 错误
问题描述
当我打这个电话
foreach ($phones->cases as $case) {
}
我收到此错误。不知何故,它正在将 lk_case 表名更改为 l_k__case_id。
最终目标是我希望能够在刀片模板中显示电话列表及其详细信息,并在循环时显示他们拥有的手机壳及其详细信息。
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'phone_cases.l_k__case_id' in 'field list'
(SQL: select `lk_case`.*, `phone_cases`.`phone_id` as `pivot_phone_id`,
`phone_cases`.`l_k__case_id` as `pivot_l_k__case_id` from `lk_case`
inner join `phone_cases` on `lk_case`.`id` = `phone_cases`.`l_k__case_id`
where `phone_cases`.`phone_id` in (11063))
这是三个模型。
手机手机壳 LK_Case
namespace App;
use Illuminate\Database\Eloquent\Model;
class Phone extends Model
{
protected $table = 'phone';
public $primaryKey = 'id';
protected $fillable = [
'title',
];
public function cases(){
return $this->belongsToMany(LK_Case::class,'phone_cases');
}
}
namespace App;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PhoneCase extends Model
{
use HasFactory;
protected $primaryKey = ['phone_id', 'case_id'];
public $incrementing = false;
protected $fillable = ['phone_id','case_id'];
}
namespace App;
use Illuminate\Database\Eloquent\Model;
class LK_Case extends Model
{
protected $table = 'lk_case';
public $primaryKey = 'id';
protected $fillable = [
'id','phone_case_name'
];
public function phones()
{
return $this->belongsToMany(Phone::class, 'phone_cases');
}
}
解决方案
推荐阅读
- notepad++ - 无论单词中字母的大小如何,如何使用所有变体来引用单词?
- svg - 对于独立的 SVG(.svg 文件),是否必须包含 DOCTYPE 和 XML 声明?
- makefile - Make:函数中特定于目标的变量赋值
- performance - 尽管响应时间在设定的持续时间内显着变化,但所有 API 的吞吐量都是恒定的
- python - python pandas:lambda或其他计算NaN值/ len(value)<1沿行的方法
- java - 如何实现“在资源管理器/查找器中定位”功能
- django - Heroku 中的静态文件设置不适用于 Django
- reactjs - 如何在 reactjs 中正确设置 barryvdh/laravel-cors
- php - 在请求中设置位置 - php
- buffer - CPU读取GPU资源数据