【发布时间】:2016-09-04 16:02:41
【问题描述】:
如何向相关表中插入数据?我有两个具有一对多关系的相关表,下面是结构:
版本表:
public function up()
{
Schema::create('edition', function (Blueprint $table) {
$table->increments('id');
$table->string('title')->unique();
$table->text('cover')->nullable();
$table->timestamps();
});
//Set FK di kolom id_edition di table Journal
Schema::table('journal', function(Blueprint $table) {
$table->foreign('id_edition')->references('id')->on('edition')->onDelete('cascade')->onUpdate('cascade');
});
}
日志表:
public function up()
{
Schema::create('journal', function (Blueprint $table) {
$table->increments('id');
$table->string('title', 200);
$table->string('author');
$table->text('abstract');
$table->text('file');
$table->integer('id_edition')->unsigned();
$table->timestamps();
});
}
版本型号:
class Edition extends Model
{
protected $table = 'edition';
protected $fillable = [
'title',
'cover',
];
public function journal()
{
return $this->hasMany('App\Journal', 'id_edition');
}
}
期刊模型:
class Journal extends Model
{
protected $table = 'journal';
protected $fillable = [
'title',
'author',
'abstract',
'file',
];
public function edition()
{
return $this->belongsTo('App\Edition', 'id_edition');
}
}
Edition 表应该有很多期刊,就像一张有很多照片的相册。那么,create 和 save 方法会是什么样子呢?我确实尝试过,但收到此错误“约束失败”,以下是代码:
控制器:
public function create() {
return view('journal/create');
}
public function store(JournalRequest $request, Edition $edition) {
$input = $request->all();
//Input PDF
if ($request->hasFile('file')) {
$input['file'] = $this->uploadPDF($request);
}
//Insert data journal
$journal = Journal::create($input);
return redirect('journal');
}
应该在以下位置打开创建表单的按钮代码:
<div class="tombol-nav">
<a href="../journal/create?edition={{$edition->id}}" class="btn btn-primary">Add new Journal to this edition</a>
</div>
【问题讨论】:
-
你是如何在
store方法中得到edition_id的? -
不知道怎么回事,上面的方法存储不起作用