为了账号安全,请及时绑定邮箱和手机立即绑定

我想退回特定用户的项目?

我想退回特定用户的项目?

PHP
慕斯王 2022-10-22 15:28:03
我想返回经过身份验证的用户的项目,但没有得到任何东西。我知道记录存在于数据库中。这是我的模型Project:public function users(){    return $this->hasMany(User::class);}这是我的模型User:public function projects(){    return $this->hasMany(Projet::class,'user_id');}这是控制器功能:public function projetuser(){   $user = User::find(auth()->user()->id);   return $user->projects;}这是我的user_projet迁移:public function up(){    Schema::create('user_projet', function (Blueprint $table) {        $table->bigIncrements('id');        $table->unsignedBigInteger('projet_id');        $table->foreign('projet_id')->references('id')->on('projets')->onDelete('cascade');        $table->unsignedBigInteger('user_id');        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');        $table->string('membre')->nullbale();        $table->timestamps();    });}
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您错误地定义了多对多关系。使用belongsToMany()而不是hasMany(). 因为您的数据透视表名称不是标准的(它应该是字母顺序projet_user),所以您还需要将它包含在关系定义中。


<?php


use Illuminate\Database\Eloquent\Model;


class Projet extends Model

{

    public function users()

    {

        return $this->belongsToMany(User::class, 'user_projet');

    }

}


class User extends Model

{

    public function projets(){

        return $this->belongsToMany(Projet::class, 'user_projet');

    }

}

现在在你的控制器中你可以这样做:


public function projetuser(){

    return auth()->user->projets;

}

您的问题似乎在“项目”和“项目”之间有所不同。我认为“projet”是正确的拼写,但尽量保持一致。


另请注意迁移中的错字:nullbale.


查看完整回答
反对 回复 2022-10-22
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信