如何填充编辑表单(一对多关系 laravel)
How to populate edit form (one to many relationship laravel)
我有一种表格可以将数据添加到两个不同的 tables(文章和交易)。一篇文章有很多交易。一个交易有一个文章。我不知道如何用 Deals table 中的数据填充编辑表单。我知道我做错了,但目前它只是用一个长数组填充编辑表单。我想我需要更改 Articles Controller 和表单值变量。目前我在每个交易日都有 $deals。
我正在使用 Laravel 5。
文章 Table 有:id、标题、图片、描述、地址。
交易 table 具有:id、dealname、article_id、dayID。
表格:
{!! Form::model($article, ['route' => ['articleUpdate_path', $article->id], 'files' => true, 'method' => 'PATCH']) !!}
{!! Form::label('title','TITLE') !!}
{!! Form::text('title', null, ['class' => 'form-control']) !!}
{!! $errors->first('title','<p class="error">:message</p>')!!}
{!! Form::label('image','PHOTO') !!}
{!! Form::file('image', null, ['class' => 'form-control']) !!}
{!! Form::label('description','DESCRIPTION') !!}
{!! Form::textarea('description', null, ['class' => 'form-control']) !!}
{!! Form::label('dealname','Monday') !!}
{!! Form::text('dealname[]', $deals, null, ['class' => 'form-control']) !!}
{!! Form::label('dealname','Tuesday') !!}
{!! Form::text('dealname[]', $deals, null, ['class' => 'form-control']) !!}
{!! Form::label('dealname','Wednesday') !!}
{!! Form::text('dealname[]', $deals,null, ['class' => 'form-control']) !!}
{!! Form::label('address','ADDRESS') !!}
{!! Form::text('address', null, ['class' => 'form-control']) !!}
{!! Form::close() !!}
文章控制器
public function edit($id)
{
$article = Article::find($id);
$deals = Deal::lists('dealname');
return view('articles.edit', compact('article', 'deals'));
}
文章模型
class Article extends Model
{
public function deals()
{
return $this->hasMany('App\Deal');
}
protected $fillable = array('title', 'photo', 'description', 'address');
}
交易模式
class Deal extends Model
{
public function articles()
{
return $this->belongsTo('App\Article')->withTimestamps();
}
protected $fillable = array('dealname', 'article_id', 'dayID');
}
来自 Laravel 5 - 查询生成器文档:
$roles = DB::table('roles')->lists('title');
This method will return an array of role titles.
由于您只是返回 $deals 变量,因此您的输出将是上面返回的数组。
为了输出单笔交易,您应该在视图中使用 "foreach" 循环来输出每笔交易的特定变量(正如 QuickDanger 在他的评论中提到的那样)。
我有一种表格可以将数据添加到两个不同的 tables(文章和交易)。一篇文章有很多交易。一个交易有一个文章。我不知道如何用 Deals table 中的数据填充编辑表单。我知道我做错了,但目前它只是用一个长数组填充编辑表单。我想我需要更改 Articles Controller 和表单值变量。目前我在每个交易日都有 $deals。
我正在使用 Laravel 5。
文章 Table 有:id、标题、图片、描述、地址。 交易 table 具有:id、dealname、article_id、dayID。
表格:
{!! Form::model($article, ['route' => ['articleUpdate_path', $article->id], 'files' => true, 'method' => 'PATCH']) !!}
{!! Form::label('title','TITLE') !!}
{!! Form::text('title', null, ['class' => 'form-control']) !!}
{!! $errors->first('title','<p class="error">:message</p>')!!}
{!! Form::label('image','PHOTO') !!}
{!! Form::file('image', null, ['class' => 'form-control']) !!}
{!! Form::label('description','DESCRIPTION') !!}
{!! Form::textarea('description', null, ['class' => 'form-control']) !!}
{!! Form::label('dealname','Monday') !!}
{!! Form::text('dealname[]', $deals, null, ['class' => 'form-control']) !!}
{!! Form::label('dealname','Tuesday') !!}
{!! Form::text('dealname[]', $deals, null, ['class' => 'form-control']) !!}
{!! Form::label('dealname','Wednesday') !!}
{!! Form::text('dealname[]', $deals,null, ['class' => 'form-control']) !!}
{!! Form::label('address','ADDRESS') !!}
{!! Form::text('address', null, ['class' => 'form-control']) !!}
{!! Form::close() !!}
文章控制器
public function edit($id)
{
$article = Article::find($id);
$deals = Deal::lists('dealname');
return view('articles.edit', compact('article', 'deals'));
}
文章模型
class Article extends Model
{
public function deals()
{
return $this->hasMany('App\Deal');
}
protected $fillable = array('title', 'photo', 'description', 'address');
}
交易模式
class Deal extends Model
{
public function articles()
{
return $this->belongsTo('App\Article')->withTimestamps();
}
protected $fillable = array('dealname', 'article_id', 'dayID');
}
来自 Laravel 5 - 查询生成器文档:
$roles = DB::table('roles')->lists('title');
This method will return an array of role titles.
由于您只是返回 $deals 变量,因此您的输出将是上面返回的数组。
为了输出单笔交易,您应该在视图中使用 "foreach" 循环来输出每笔交易的特定变量(正如 QuickDanger 在他的评论中提到的那样)。