二つのテーブルに挿入します。私は1対1の関係にある2つのテーブル持って一対一relationslip laravelに
ツアー:
id|title|content
featured_image:
id|tour_id|name|path
私をモデルFeaturedImage.php
:
class FeaturedImage extends Model
{
public function tour()
{
return $this->hasOne('App\Tour');
}
}
Tour.php
class Tour extends Model
{
public function featuredimage()
{
return $this->belongsTo('App\FeaturedImage');
}
}
私はツアーが作成されたときにfeatured_image
表にtour_id
を保存したいです。私はtours
テーブルを記入し、featured_image
をアップロードするために同じフォームを使用しています。
public function store(Request $request)
{
//validate the date
$this->validate($request, [
'title' => 'required|max:255',
'content' => 'required'
]);
//store the date
$tour = new Tour;
$tour->title = $request->title;
$tour->content = $request->trip_code;
$tour->save();
$featured_image= new FeaturedImage;
// save featured_image
if($request->hasFile('featured_image')){
$image = $request->file('featured_image');
$filename = $image->getClientOriginalName();
$location = public_path('images/featured_image/'.$filename);
Image::make($image)->resize(800, 600)->save($location);
$featured_image->path= $location;
$featured_image->tour()->associate($tour);
$featured_image->save();
}
//redirect to
Session::flash('success','Tour is successfully created !');
return redirect()->route('tours.show',$tour->id);
}
私はtours
テーブルにデータを保存することに成功したがfeatured_image
テーブルに保存することができませんでしだ:
これが私の店の方法があるように見えます。私はこのエラーが発生しています:
Call to undefined method Illuminate\Database\Query\Builder::associate()
誰かが私を助けることができれば感謝します。
[定義されていないメソッドを呼び出す\ Database \ Query \ Builder :: associate()]の可能な複製(http://stackoverflow.com/questions/19868838/call-to-undefined-method-illuminate-database-query -builderassociate) – Froxz
私はすでにその話題に行きました。私はこれを投稿しました。 –