Php 同一表中的Laravel模型关系
我正在从事一个Laravel5.7项目,在这个项目中,我有三个表格单词,同义词和反义词 words表有两列id和word 同义词有三列id、单词id和同义词id 反义词有三列id、单词id和反义词id 我将所有单词及其同义词和反义词存储在单词表中,并在相应的表中引用同义词和反义词 Word.php 我在质疑这样的同义词:-Php 同一表中的Laravel模型关系,php,mysql,laravel-5,Php,Mysql,Laravel 5,我正在从事一个Laravel5.7项目,在这个项目中,我有三个表格单词,同义词和反义词 words表有两列id和word 同义词有三列id、单词id和同义词id 反义词有三列id、单词id和反义词id 我将所有单词及其同义词和反义词存储在单词表中,并在相应的表中引用同义词和反义词 Word.php 我在质疑这样的同义词:- $synonyms = Word::find(1)->synonyms; 上面的查询提供了同义词表中的所有同义词及其id,但我的实际同义词存储在Words表中 如何从
$synonyms = Word::find(1)->synonyms;
上面的查询提供了同义词表中的所有同义词及其id,但我的实际同义词存储在Words表中
如何从单词表中获取同义词
要使用这个,同义词类应该和单词有如下定义的关系
class Synonym extends Eloquent {
public function word()
{
return $this->belongsTo('App\Word');
}
}
阅读相同的场景以获得更多理解。
我用圆点解决了这个问题。在查询中 Word.php Synonym.php WordController.php 注意点。在同义词和单词之间 words.blade.php
请给我看一下你的同义词模型内容。是的,我有这样的同义词和反义词模型。但问题是同义词和反义词表并没有存储实际的单词,实际的同义词在单词表中。同义词表只有word_id字段,它引用回word表。$synonymsWithWord=word::find1->synonyms->with'word';此查询提供同义词表中的单词_id,但不是实际单词。我想从单词表中得到实际单词。同义词和反义词模式应该和答案中建议的单词模式有关系。然后在查询中与函数一起使用。@Amandepsingh它工作吗?或者你面临的任何问题。让我知道。我会解决的。非常感谢你给我这个主意。我用嵌套关系解决了它。
$synonymsWithWord = Word::find(1)->synonyms()->with('word')->get();
class Synonym extends Eloquent {
public function word()
{
return $this->belongsTo('App\Word');
}
}
class Word extends Model
{
public function antonyms()
{
return $this->hasMany(Antonym::class);
}
public function synonyms()
{
return $this->hasMany(Synonym::class);
}
}
class Synonym extends Model
{
public function word()
{
return $this->belongsTo(Word::class);
}
}
class WordController extends Controller
{
public function index()
{
$words = Word::with(['synonyms.word'])->get();
return view('words', compact('words') );
}
}
@foreach($words as $word)
<h4>{{ $word->word }}</h4>
@foreach($word->synonyms as $s)
{{ $s->id }} - {{ $s->word->word }}
<br>
@endforeach
@endforeach