如何通过Laravel中的多对多关系获取模型

如何通过Laravel中的多对多关系获取模型,laravel,orm,model,Laravel,Orm,Model,我在拉雷维尔有以下情况,简单地想象一下: task -([many-to-many]- task_user -[many-to-many])- user -[one-to-one]- info 我能够从一个任务到另一个用户,但不幸的是,我无法获得信息 有人知道我错过了什么吗 模型:任务 namespace App\Models; use Illuminate\Database\Eloquent\Model; class Task extends Model { public $t

我在拉雷维尔有以下情况,简单地想象一下:

task -([many-to-many]- task_user -[many-to-many])- user -[one-to-one]- info
我能够从一个任务到另一个用户,但不幸的是,我无法获得信息

有人知道我错过了什么吗

模型:任务

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{

    public $table = "tasks";
    public function taskuser(){
         //task->task_user->user->info
        return $this->belongsToMany(User::class,'task_user');
}
将->belongsTo(Info::class)添加到函数taskuser时,出现以下错误:

Illuminate\Database\Eloquent\RelationNotFoundException
Call to undefined relationship [taskuser] on model [App\Models\Task].
我肯定错过了什么,但是什么

编辑:信息模型以用户身份使用用户->信息给出正确的结果 模型用户:

public function info()
{
    return $this->hasOne('App\Models\Info');
}
编辑:控制器

$task= Task::whereBetween('datetime',array($start,$end))->with('tasktype','taskuser')->get();
编辑:相关表格

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('username');
        $table->rememberToken();
        $table->timestamps();

    Schema::create('infos', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned(); //internal id
        $table->string('name');  
        #foreign references
        $table->foreign('user_id')->references('id')->on('users');  

    Schema::create('tasks', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('task_types_id')->unsigned();  
        $table->string('title');  
        $table->datetime('datetime');  
        $table->integer('length'); 
        $table->string('description')->nullable(); 
        $table->integer('updated_by')->unsigned(); 
        $table->timestamps();
        #foreign references
        $table->foreign('task_types_id')->references('id')->on('task_types');
        $table->foreign('updated_by')->references('id')->on('users');           

    Schema::create('task_users', function (Blueprint $table) {
        $table->integer('task_id')->unsigned(); 
        $table->integer('user_id')->unsigned(); 
        #foreign references
        $table->foreign('task_id')->references('id')->on('tasks');
        $table->foreign('user_id')->references('id')->on('users');

通过阅读更多的Laravel文档,特别是

添加.info

     $task= Task::whereBetween('datetime',array($start,$end))
     ->with('tasktype','taskuser.info')
     ->get();

现在它起作用了

能否将该函数的名称
taskuser
更改为
mytaskuser
并检查相同的错误?错误相同。你可以给你看表格吗?我有一个任务,任务,用户和信息表格。我的意思是,你能实际显示列而不是表格名吗