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