公司模式
class Company extends Model {
public function position() {
return $this->hasMany('App\Position);
}
}
位置模型
class Position extends Model{
public function company() {
return $this->belongsTo('App\Company);
}
}
公司表: id_company , company_name
职位表: id_position ,职位, company_id (外键)
我尝试做的是创建每个公司名称的下拉列表,以便我可以引用该公司的ID,以便将其存储为外键(company_id)。
存储到职位表的表单
{!! Form::open(['action' => 'PostionController@store', 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!}
<div class="form-group">
{{Form::label('position', 'Position')}}
{{Form::text('position', '', ['class' => 'form-control', 'placeholder' => 'Position'])}}
</div>
//Reference to the id
<div class="form-group">
{{Form::select(!!!Array generated from the Company table!!!")}};
</div>
{{Form::submit('Submit', ['class'=>'btn btn-primary'])}}
{{Form::reset('Reset', ['class'=>'btn btn-danger'])}}
{!! Form::close() !!}
我是Laravel的新手,所以任何参考阅读它都会很有帮助谢谢!
答案 0 :(得分:0)
您可以在hasMany()
中指定外键名称,在第二个参数中指定belongsTo()
。
公司模式
class Company extends Model {
public function position() {
return $this->hasMany(App\Position::class, 'company_id');
}
}
位置模型
class Position extends Model{
public function company() {
return $this->belongsTo(App\Company:class, 'company_id');
}
}
获得公司职位:
{{ Form::select('name',\App\Company::find($id)->position()->get()->toArray())}}
或者你可以按职位获得公司:
\App\Position::find($id)->company()->get()->toArray()
小心点。不要仅使用get()
方法使用find()
。这将返回表中的所有行。使用关系函数后,您可以使用get()
。
答案 1 :(得分:0)
使用此:
{!! Form::select('company_id', \App\Company::pluck('company_name', 'id_company')) !!}