Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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_Laravel - Fatal编程技术网

Php 从Laravel中的多对多关系检索数据

Php 从Laravel中的多对多关系检索数据,php,laravel,Php,Laravel,我知道这个问题已经被回答了很多次,但由于某种原因,我无法让它在我的桌子上工作,不管发生什么,我不明白为什么 我已经试了4个小时了,但没能把它做好 以下是我在两个模型中的函数: 康杜卡托博士 public function materii() { return $this->belongsToMany('App\DomeniuDoctorat', 'profesor_domeniu', 'domeniu_id', 'profesor_id'); } 博士学位

我知道这个问题已经被回答了很多次,但由于某种原因,我无法让它在我的桌子上工作,不管发生什么,我不明白为什么

我已经试了4个小时了,但没能把它做好

以下是我在两个模型中的函数:

康杜卡托博士

public function materii()
    {
        return $this->belongsToMany('App\DomeniuDoctorat', 'profesor_domeniu', 'domeniu_id', 'profesor_id');
    }
博士学位

public function materii()
    {
        return $this->belongsToMany('App\ConducatorDoctorat', 'profesor_domeniu', 'profesor_id', 'domeniu_id');
    }
和domeniu教授的模式:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class ProfesorDomeniu extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('profesor_domeniu', function (Blueprint $table) {
            $table->unsignedBigInteger('profesor_id');
            $table->unsignedBigInteger('domeniu_id');
            
            $table->foreign('profesor_id')
                  ->references('id')->on('conducatori_doctorat')
                  ->onDelete('cascade');
            $table->foreign('domeniu_id')
                  ->references('id')->on('domenii_doctorat')
                  ->onDelete('cascade');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('profesor_domeniu');
    }
}
但它仍然不起作用

对于给定的$id,我想从profesor_domeniu检索所有数据,其中profesor_id==$id。 就这些,但我搞不懂

如何做到这一点?为什么我的方法不起作用

//为清晰起见,请编辑:

conducator_博士学位是教授们的存放地,domenii_博士学位是他们的领域的存放地

在profesor_domeniu中,我通过将conducatori_博士的id链接到domeniu博士的领域id来存储每位教授所教授的内容

//编辑2:

materiali()是指他们教授的领域

//编辑3:

我与数据透视表profesor_domeniu中添加的一些数据的多对多关系


在您的模型上加载您的关系:

public function edit($id)
    {
        $conducatorDoctorat = ConducatorDoctorat::with('materii')->findOrFail($id);

       $materii = $conducatorDoctorat->materii;

        return view('admin.conducatori_doctorat.edit')->with([
            'materii' => $materii
        ]);
    }
您也可以仅申请与您的康德博士学位相关的材料:

public function edit($id)
    {
       

       $materii = DomeniuDoctorat::whereHas('materii', function($query) use ($id){
             $query->where('id', $id);
       })->get();

        return view('admin.conducatori_doctorat.edit')->with([
            'materii' => $materii
        ]);
    }

你和教授的关系在哪里?@KamleshPaul你什么意思?
conducatordoctorate
意思?您的桌名是confusion@KamleshPaul为了清晰起见,我编辑了我最初的帖子。抱歉:)那么一个
教授
可以有许多
字段
?你想得到
教授的数据
,其中有受尊重的
字段
?你能用一个基本的例子来更新你的问题吗?你是对的。我很抱歉。我做错了别的事。
public function edit($id)
    {
       

       $materii = DomeniuDoctorat::whereHas('materii', function($query) use ($id){
             $query->where('id', $id);
       })->get();

        return view('admin.conducatori_doctorat.edit')->with([
            'materii' => $materii
        ]);
    }