首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉拉雄辩的迁徙

拉拉雄辩的迁徙
EN

Stack Overflow用户
提问于 2022-05-19 03:22:54
回答 1查看 85关注 0票数 0

在laravel雄辩的关系中,即使有一个现有的数据库,是否仍有必要进行迁移?新手来了。

我在我的模型中创建了一对一的关系,以便从另一个表的记录中获取特定的列,并将其提取到datatable,但是它没有工作。

代码语言:javascript
复制
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Directorystatus extends Model
{
    use HasFactory;

    protected $table = 'user_status';
    protected $fillable = ['status_id' , 'status_xtitle'];

    public function userbasic() {
        return $this->belongsTo(directorybasic::class,'user_xusern','status_xuser');
    }
}

class Directoryuser extends Model
{
    use HasFactory;

    protected $table = 'user_basic';
    protected $primaryKey = 'user_id';
    protected $fillable = ['user_id' , 'user_xusern' , 'user_xfirtname' ,'user_xmiddlename','user_xlastname'];

    public function userstatus() {
        return $this->hasOne(directorystatus::class,'user_xusern','status_xuser');
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-19 05:16:21

不是的。迁移是不必要的。定义双方的关系也是没有必要的,如果你不需要两者。(您只能使用belongsTo,而不需要在相反的模型中使用hasOne或hasMany。)

首先,确保您正在使用正确的对象(Directorystatus::class / Directoryuser:class -我看到它们在代码中没有大写)。下一个param是外键,意思是指向模型主键的列。第三个param是可选的,仅当主键不是id时才使用。

例如,如果表status_xuser中有一个列user_status,其中包含来自user_basic表的user_id,那么您应该像这样定义它:

代码语言:javascript
复制
public function userbasic() {
    return $this->belongsTo(Directoryuser::class,'status_xuser','user_id');
}

为了使用这种关系,例如,当从db检索模型时,您应该以命名关系函数的方式调用它。

代码语言:javascript
复制
$status = Directorystatus::find(1);
$user = $status->userbasic();

我还建议您在camelCase中命名您的类,因为这是公认的实践(特别是在Laravel中)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72298266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档