[英]How to populate edit form (one to many relationship laravel)
我有一种将数据添加到两个不同表(文章和交易)的表格。 文章有很多交易。 交易只有一条。 我不知道如何用Deals表中的数据填充编辑表单。 我知道我做错了,但此刻它只是用长长的数组填充编辑表单。 我想我需要更改Articles Controller和form value变量。 目前,每个交易日我只有$ deal。
我正在使用Laravel 5。
文章表具有:ID,标题,图像,描述,地址。 Deals表具有: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');
此方法将返回角色标题数组。
由于您只是返回$ deals变量,因此您的输出将是上述返回的数组。
为了输出单个交易,您应该在视图内使用“ foreach”循环来输出每个交易的特定变量(如QuickDanger在其评论中所述)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.