2016-10-31 20 views
-1

這是我再次,但現在我需要一些更多的幫助,我有一些版本的購物車,整個想法是當我點擊產品按鈕數據庫是用用戶(id)對產品(id)訂購的信息進行更新。首先,我使用信息(id,product_name,price)製作訂單表,其他表是用戶表(id,user_name),最終表user_order表(id,user_id,order_id);如何使兩個模型之間的關係和更新數據庫

之後,我做了兩個模型,一個是訂單模型的產品,第二個是用戶模型。我想製作的這種關係在這兩種模式之間。

用戶模式功能:

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' 
     ]); 

的整體思路是怎樣submiting按鈕表user_order與用戶的ID,產品的ID更新後做出功能。

任何幫助?

+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(); 
} 
相關問題