2016-10-31 25 views
-1

もう一度私はあなたの助けが必要です、私はショッピングカートのいくつかのバージョンを持っており、全体のアイデアは製品のボタンデータベースをクリックするときですユーザー(id)がその製品(id)を注文した情報で更新する。まず、情報(id、product_name、price)、他のテーブルがユーザテーブル(id、user_name)、最終テーブルuser_orderテーブル(id、user_id、order_id)で注文テーブルを作成します。2つのモデル間の関係を作成し、データベースを更新する方法

2つのモデルを作成した後、1つは製品の注文モデル、もう1つはユーザーモデルです。私が作りたい関係は、この2つのモデルの間にあります。

Userモデル機能:

public function orders(){ 
     return $this->belongsToMany('App\Orders', 'user_order', 'user_id', 'order_id'); 
     // return $this->belongsToMany('App\Orders'); 
    } 

受注モデル関数:

public function users(){ 
     return $this->belongsToMany('App\User', 'user_order', 'order_id', 'user_id'); 
     //return $this->belongsToMany('App\User'); 
    } 

これは私が送信ボタンですべての製品を表示するメインhtmlです:

<div class="row"> 
        @foreach($orders as $order) 
        <div class="col-sm-4 col-lg-4 col-md-4"> 
         <div class="thumbnail"> 
          <img src="http://placehold.it/320x150" alt=""> 
          <div class="caption"> 
           <h4 class="pull-right">{{ $order->cena }}</h4> 
           <h4><a href="#">{{ $order->order_name }}</a> 
           </h4> 
           <p>See more snippets like this online store item at <a target="_blank" href="http://www.bootsnipp.com">Bootsnipp - http://bootsnipp.com</a>.</p> 
          </div> 
          <div class="ratings"> 
           <p class="pull-right">15 reviews</p> 
           <p> 
            <span class="glyphicon glyphicon-star"></span> 
            <span class="glyphicon glyphicon-star"></span> 
            <span class="glyphicon glyphicon-star"></span> 
            <span class="glyphicon glyphicon-star"></span> 
            <span class="glyphicon glyphicon-star"></span> 
           </p> 
          </div> 
          <div class="btn-group center"> 

           <a href="{{ route('product.makeOrder',['id' => $order->id]) }}" name="req" class="btn btn-warning">Order this product!</a> 
          </div> 
          <br> 
         </div> 
        </div> 
        @endforeach 

コントローラ機能:

public function makeOrder(Request $request, $id){ 

     $user = User::where('email', $request['email'])->first(); 
     $findorder = Orders::find($id); 
     //$user->orders()->detach(); 
     $user->orders()->attach(Orders::where('id', $findorder))->first(); 

     return redirect()->back(); 

    } 

とルート:

Route::get('/add-to-database/{id}',[ 
     'uses' => '[email protected]', 
     'as' => 'product.makeOrder' 
     ]); 

全体的なアイデアは、製品の使用者のID、およびIDを更新するボタンをテーブルuser_orderをsubmiting後に機能を作成する方法です。

助けが必要ですか?

+0

は何を働いていないか、またはあなたが助けてどの部分が必要なのでしょうか? –

+0

私は質問で言及したことをする機能を作る方法を知らない – Devmasta

+0

あなたはこれに対して少なくとも経路とコントローラを作成しましたか?また、送信ボタンが表示されません。 –

答えて

0

あなたのようmakeOrder()は次のようになります。

public function makeOrder(Request $request, $id) { 
    $user = User::where('email', $request->get('email'))->first(); 

    // this is to make sure that order is available in database 
    $order = Orders::findOrFail($id); 

    $user->orders()->attach($order->id); 

    return redirect()->back(); 
} 
関連する問題