使用数组时,是否可以形成模型绑定一对多的关系?
在下面的示例中,作业和问题表之间存在一对多关系。
工作可能有很多或没有相关的问题。在我的刀片模板中,我想知道是否可以绑定此关系
因为我已经能够在工作班getIndustryListAttribute()
上使用简单的方法与就业行业关系这样做。我尝试使用getQuestionListAttribute()
方法,但它不起作用?
表格
jobs
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`job_title` VARCHAR(100) NOT NULL,
questions
`job_id` INT(10) UNSIGNED NOT NULL,
`question_id` INT(10) UNSIGNED NOT NULL,
`question_text` VARCHAR(150) NOT NULL,
`expected_answer` TINYINT(1) NOT NULL,
PRIMARY KEY (`job_id`, `question_id`),
型号:
class Job extends Model {
public function questions()
{
return $this->hasMany('App\Question');
}
public function industries()
{
return $this->belongsToMany('App\Industry', 'job_industry');
}
public function getIndustryListAttribute()
{
return $this->industries->lists('id')->all();
}
public function getQuestionListAttribute()
{
return $this->questions->lists('question_text', 'question_id')->all();
}
}
class Question extends Model {
public function job()
{
return $this->belongsTo('App\Job');
}
}
形式:
@for ($i = 0; $i < 5; $i++)
<div class="form-group >
{!! Form::label("question_list.{$i}.question_text", 'Question', ['class' => '']) !!}
{!! Form::text("question_list[{$i}][question_text]", null, ['maxlength' => '150', 'class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label("question_list.{$i}.expected_answer", 'Expected answer', ['class' => '']) !!}
{!! Form::select("question_list[{$i}][expected_answer]", ['' => 'Please Select', 'true' => 'Yes', 'false' => 'No'], null, ['class' => 'form-control']) !!}
</div>
@endfor
<div class="form-group">
{!! Form::label('industry_list', 'Industry', ['class' => '']) !!}
{!! Form::select('industry_list[]', $industries, null, ['id' => 'industry_list', 'class' => 'form-control', 'multiple']) !!}
</div>
注意:question_id
只是数组索引值。
答案 0 :(得分:0)
您可以使用Form Model Accessors
class Job extends Model
{
use \Collective\Html\Eloquent\FormAccessible;
public function formQuestionAttribute($value)
{
// This will return array, You want to implode it if you expect string.
return $this->questions;
}
}
在刀片文件中:
{!! Form::text('questions') !!}
有关更多信息,请参见LaravelCollective。