You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sushi模型与常规模型的单向关联无法正常工作?

问题解决:Sushi模型关联常规模型找不到表的问题

问题核心

Sushi模型(Phone)关联常规数据库模型(User)时,会默认套用Sushi的内存连接去查询users表,但常规User模型的数据存储在真实数据库(比如MySQL)中,因此触发了no such table: users的错误。

解决方案

修改Phone模型的user关联方法,强制关联查询使用常规模型的数据库连接,而非Sushi的内存连接。

方法一:直接指定默认数据库连接

public function user(): BelongsTo
{
    return $this->belongsTo(\App\Models\User::class)->setConnection(config('database.default'));
}

方法二:复用User模型的连接配置

这种方式更灵活,即使User模型自定义了数据库连接也能适配:

public function user(): BelongsTo
{
    return $this->belongsTo(\App\Models\User::class)
                ->setConnection(\App\Models\User::query()->getConnectionName());
}

验证效果

修改后执行App\Models\Sushi\Phone::find(1)->user,即可正常返回对应的User模型实例,完全符合单向关联的要求——User模型无需做任何修改(不需要添加phone_id字段或关联方法)。

内容的提问来源于stack exchange,提问作者wivku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:37:16