Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel中的透视表选择_Php_Sql_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel中的透视表选择

Php Laravel中的透视表选择,php,sql,laravel,laravel-4,Php,Sql,Laravel,Laravel 4,我已经为我的表用户和课程创建了一个透视表 一个用户可以有许多课程,一个课程可以有许多课程。所以 在Course.php中 public function user(){ return $this->hasMany('User'); } public function courses(){ return $this->hasMany('Course'); } 在User.php public function user(){ retu

我已经为我的表
用户
课程
创建了一个透视表

一个用户可以有许多课程,一个课程可以有许多课程。所以

Course.php中

 public function user(){
       return $this->hasMany('User');
    }
public function courses(){
    return $this->hasMany('Course');
}
User.php

 public function user(){
       return $this->hasMany('User');
    }
public function courses(){
    return $this->hasMany('Course');
}
当我试图调用以下查询时,出现了一个错误

$user = User::where('id', Auth::user()->id)->first();
$courses = $user->courses->get();

错误:

SQLSTATE [42S22]: Column not found: 1054 Champ 'courses.user_id unknown in where clause (SQL: select * from `` Where courses` courses`.`user_id` = 3)

有什么问题吗?我做得对吗?

你必须回报这段关系。此外,还需要对多对多关系使用
belongtomany()

public function user(){
    return $this->belongsToMany('User');
}


您应该使用
$user=user::with('courses')->where('id',Auth::id())->first()它将在一行中完成您的代码

然后您可以使用
$user->courses
作为数组来访问课程

请注意,
Auth::id()
相当于
Auth::user()->id

编辑:您应该对课程使用以下功能:

public function user()
{
   return ($this->belongsToMany('User'));
}

我仍然收到一个错误,
SQLSTATE[42S22]:未找到列:1054 Champ'courses.user\u id在where子句中未知(SQL:select*from``where courses
courses
user\u id`=3)`您能重新格式化错误消息或将其添加到您的问题中吗?这样读起来有点难。引用user.id的外键叫做
user\u id
?dd($users)返回数组(size=3)和其他细节。好的。把所有的菜都拿来?(我真的被
select*from''
激怒了,感觉这就是问题所在)SQLSTATE[42S02]:找不到基表或视图:1146表“learningnew.user\u user”不存在(SQL:从“用户”内部选择*
users
,`
作为用户
用户id
pivot\u用户id`。``我们在(3)中加入用户`用户`用户`
id`=`Where user\u用户用户id`用户`用户`
用户id`)您必须使用我在您的课程类中发布的函数,并且不要更改您的用户类中的函数。如果不清楚,很抱歉。我这样做了。出现了以下错误:SQLSTATE[42S22]:未找到列:1054 Champ'courses.User\u id在where子句中未知(SQL:select*from``where courses`courses
User\u id`in(3))