Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 为什么刀片视图中需要具有一对多关系的first()?_Php_Laravel_Blade - Fatal编程技术网

Php 为什么刀片视图中需要具有一对多关系的first()?

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

我有两张桌子

“一个问题”标题条目有许多问题条目。标题包含一组问题

问题 id |问题||问题\u标题\u id

问题与标题 id |标题

典型问题

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会自动为您解析关系