Php 为什么刀片视图中需要具有一对多关系的first()?
我有两张桌子 “一个问题”标题条目有许多问题条目。标题包含一组问题 问题 id |问题||问题\u标题\u id 问题与标题 id |标题 典型问题Php 为什么刀片视图中需要具有一对多关系的first()?,php,laravel,blade,Php,Laravel,Blade,我有两张桌子 “一个问题”标题条目有许多问题条目。标题包含一组问题 问题 id |问题||问题\u标题\u id 问题与标题 id |标题 典型问题 class Question extends \Eloquent { public function questionTitle() { return $this->belongsTo('QuestionsTitle', 'question_titles_id'); } } class QuestionsT
class Question extends \Eloquent {
public function questionTitle() {
return $this->belongsTo('QuestionsTitle', 'question_titles_id');
}
}
class QuestionsTitle extends \Eloquent {
protected $fillable = ['title', 'question_cat_id', 'type'];
protected $table = 'questions_titles';
public function question() {
return $this->hasMany('Question');
}
}
典型问题
class Question extends \Eloquent {
public function questionTitle() {
return $this->belongsTo('QuestionsTitle', 'question_titles_id');
}
}
class QuestionsTitle extends \Eloquent {
protected $fillable = ['title', 'question_cat_id', 'type'];
protected $table = 'questions_titles';
public function question() {
return $this->hasMany('Question');
}
}
我的问题是:
$questions = Question::all();
$this->layout->content = View::make('questions.index', compact('questions'));
在我看来,我想要一组具有相应父标题的问题
@foreach ($questions as $question)
<tr>
<td>{{ $question->questionTitle()->first()->title }}</td>
<td>{{ $question->id }}</td>
<td>{{ $question->question }}</td>
</tr>
@endforeach
$question->questionTitle()
返回BelongsTo对象,而不是questionTitle对象。调用$question->questionTitle()->first()
时,您正在对关系执行first()
方法。通过拉维魔法,你会得到正确的答案。虽然你真正应该做的是:$question->questionTitle->title
。当您访问questionTitle
属性时,Laravel会自动为您解析关系