使用pluck()仅列出与另一个列表相关的行

时间:2017-12-08 17:04:24

标签: php laravel laravel-5.5

所以,我有三张桌子:农场,庄稼和收成。当我想在我的网页上注册收获时,我使用pluck来显示农场的下拉列表和同一视图中作物的另一个下拉列表。问题是,当我从下拉列表中选择一个农场时,我仍然可以看到并选择与其他农场相关的作物,而且不好。如何仅列出与先前选择的农场相关的作物?我的HarvestController看起来像这样:

public function create()
    {
        $farms = Farm::where('users_id', Auth::id())->with('alias')->pluck('alias', 'id');
        $crops = Crop::where('users_id', Auth::id())->pluck('id', 'id');
        return view('harvest.create')
        ->with('farms', $farms)
        ->with('crops', $crops);
    }

模特中的关系:

class Farm extends Model
{
   public function crops(){
        return $this->hasMany('App\Crop');
    }
}

class Crop extends Model
{
   public function farm(){
        return $this->belongsTo('App\Farm');
    }

    public function harvest(){
        return $this->hasOne('App\Harvest');
    }
}

视图如下:

<div class="form-group">
            {!! Form::label('farms_id', 'Farm') !!}
            {!! Form::select('farms_id', $farms, null, ['class' => 'form-control', 'required']) !!}
        </div>

        <div class="form-group">
            {!! Form::label('crops_id', 'Crop ID') !!}
            {!! Form::select('crops_id', $crops, null, ['class' => 'form-control', 'required']) !!}
        </div>

任何帮助都将受到高度赞赏,建设性的烘烤

0 个答案:

没有答案