0

我正在使用 eloquent 方法has()仅检索父级存在且未删除且运行良好的行。

但这在将“用户”作为参数传递时不起作用,因为用户来自不同的连接。

我已经在两个模型中设置了连接,但仍然收到用户未找到表的错误。请问我该如何检查来自另一个数据库连接的父级是否存在?例如。

我的课程模型

class Course extends Model
{
    protected $connection= "mysql";
    
    public function user(){
        return $this->belongsTo(User::class);
    }
}

我的用户模型来自另一个数据库连接“帐户”。

class User extends Model
{
    protected $connection= "accounts";
    
    public function courses(){
        return $this->hasMany(Course::class);
    }
}

在我的 CourseController 中,我想这样做。

class CoursesController extends Controller
{
   public function index(Request $request){
       $term = $request->get("query","");
       return Course::has("user")->where("name","like","%$term%")->paginate(12);
   }
}

如果courses表和users表在同一个数据库中,这将起作用,但因为没有得到表或视图未找到 SQL 错误。

如果有一种方法可以在方法中传递连接名称,has那就太好了,但该has方法只需要一个参数,即模型名称。

我真的需要让这个工作,我的用户存储在另一个数据库中。

4

0 回答 0