2016-03-03 39 views
1

我有一种表单将数据添加到两个不同的表(文章&交易)。一篇文章有​​很多交易。一笔交易有一篇文章。我无法弄清楚如何使用Deals表中的数据填充编辑表单。我知道我做错了,但目前它只是用长阵列填充编辑表单。我想我需要更改文章控制器和表单值变量。目前,我每个交易日都只有$交易。如何填充编辑表单(一对多关系laravel)

我使用Laravel 5.

在文章表有:ID,标题,图片,说明,地址。 Deals表具有:id,dealname,article_id,dayID。

FORM:

{!! 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() !!} 

ARTICLES CONTROLLER

public function edit($id) 
{ 
    $article = Article::find($id); 
    $deals = Deal::lists('dealname'); 
    return view('articles.edit', compact('article', 'deals')); 
} 

ARTICLE MODEL

class Article extends Model 
{ 
    public function deals() 
    { 
     return $this->hasMany('App\Deal'); 
    } 
protected $fillable = array('title', 'photo', 'description', 'address'); 
} 

DEAL MODEL

class Deal extends Model 
{ 
    public function articles() 
    { 
     return $this->belongsTo('App\Article')->withTimestamps(); 
    } 
    protected $fillable = array('dealname', 'article_id', 'dayID'); 
} 
+0

您的控制器方法不会将您的交易作为'$ article = Article :: find($ id) - >与('deals')来获取交易吗?然后在你的视图中,使用'@foreach($ article-> deals为$ deal)'循环它们? – QuickDanger

回答

1

从Laravel 5查询生成器文档:

$ roles = DB :: table('roles') - > lists('title');

此方法将返回角色标题数组。

由于您只是简单地返回$ deals变量,您的输出将是上述返回的数组。

为了输出单个交易,您应该在视图中使用“foreach”循环输出每笔交易的特定变量(如QuickDanger在其评论中提到的)。

+0

谢谢。现在我卡在更新功能! –