我已经尝试了太多次,但我仍然无法得到它。 我正在尝试使用laravel制作自定义游览应用程序。我有3个型号用户 - 请求 - 提供 用户有很多要求,请求有很多优惠 但是提议和请求都属于用户,这是因为用户表有两个角色,一个是旅行者,一个是旅行社。
这是我的模特 班级用户
protected $fillable = [
'first_name',
'last_name',
'contact_number',
'photo',
'birthday',
'about',
'email',
'agency',
'logo',
'role',
'status_agency',
'is_admin',
'legal',
'password',
];
public function custom_tour_requests()
{
return $this->hasMany('App\custom_tour_request', 'traveler_id');
}
public function custom_tour_offers()
{
return $this->hasManyThrough('App\custom_tour_offer', 'App\custom_tour_request');
}
class custom_tour_request
protected $fillable = [
'title' ,
'departure' ,
'destination' ,
'description' ,
'start_date' ,
'end_date',
'budget' ,
'adult' ,
'child' ,
'traveler_id'
];
public function user()
{
return $this->belongsTo('App\user');
}
public function custom_tour_offers()
{
return $this->hasMany('App\custom_tour_offer', 'custom_tour_request_id');
}
class custom_tour_offer
protected $fillable = [
'title',
'departure',
'destination',
'itinerary',
'include',
'exclude',
'start_date',
'end_date',
'price'
];
public function custom_tour_request()
{
return $this->belongsTo('App\custom_tour_request');
}
public function user()
{
return $this->belongsTo('App\user');
}
每当我试图插入它时返回错误,
$travelagent = user::find(Auth::user()->id);
$customtourRequest = $travelagent->custom_tour_offers()->create($requests->all());
我无法更改我的数据库设计。我很困惑。
答案 0 :(得分:0)
错误是什么? 你有没有重新检查文档和API? 也许你忘记了create方法之前的第一个()。
http://laravel.com/docs/5.0/eloquent#querying-relations
http://laravel.com/api/5.0/Illuminate/Database/Eloquent/Relations/HasManyThrough.html
我个人喜欢这样做
custom_tour_offer::create($request->all());
答案 1 :(得分:0)
试试这个并发布结果:
$tourOffers = $travelagent->custom_tour_offers();
$queryBuilder = $tourOffers->getQuery();
$sql = $queryBuilder->getGrammar()->compileInsert($queryBuilder, $requests->all());
dd($sql);