2015-05-27 70 views
4

我無法更新我的數據庫的特定列。在我的數據庫中有一個「條件」列,它的默認值是「掛起」。我想用值「accept」更新此列,但我無法這樣做。無法更新MySQL數據庫的特定列

我routes.php文件

Route::get('accept/{id}',array(
    'as'=>'accept-product', 
    'uses'=>'[email protected] 
)); 

我的控制器:

public function updateProduct($id) 
{ 
    $product = Products::findOrFail($id); 
    $product->conditions = 'accept'; 
    $product->save(); 
} 

我的觀點:

@foreach($product as $productAccept) 
    <a href="{{URL::route('accept-product')}}/{!! $productAccept->id !!} ">Accept</a> 
@endforeach 

當我點擊接受按鈕,網址是這樣

http://localhost/project/public/accept/{id}

,我想是這樣的:

http://localhost/project/public/accept/7

我的意思是我無法取代{id}整數像78

有什麼事我routes

+0

雖然下面的答案是正確的,你應該確保你如果產品檢查在嘗試編輯它之前,您試圖編輯實際存在的內容。 – Seer

+0

@Seer爲什麼?只是好奇。 – Strawberry

+0

因爲如果它不存在,我猜這會拋出一個異常,這將導致一個HTTP 500,而不是像HTTP 404一樣對用戶有用。 – Seer

回答

5

您定義的路線需要一個額外的參數 - id。您需要將產品編號中的路由功能像這種額外的參數:

+0

- 感謝它現在的作品 –

+1

我很高興它工作現在。您可以將答案標記爲已接受:) – shaddy

2

試試這個,

<a href="{{ route('accept-product', $productAccept->id)}}">Accept</a> 
+0

- 感謝您的幫助 –

2

使用網址爲

<a href="{!! URL::to('accept/$productAccept->id') !!}">Accept</a> 
+0

- 感謝您的幫助 –

+0

您是最受歡迎的人@RanjitKarki –

2
@foreach($product as $productAccept) 
    <a href="{{route('accept-product', ['id' => $productAccept->id])}}">Accept</a> 
@endforeach 

你的問題是這樣的:/{!! $productAccept->id !!}

+0

@ Digitlimit-Thankyou尋求幫助 –

0

Th我看到的最明顯的問題可能是該頁面沒有正確重定向。我的意思是laravel可能不會觸及那個控制器的那個方法,並且因爲沒有錯誤信息我不確定。

可能存在的一個問題是,您已經在代碼中的某處定義了路由,並且它正在被覆蓋。如果有任何錯誤消息,請分享。

我可以看到你可以對上面的代碼做出一些改進。 1。改變

@foreach($product as $productAccept) 
    <a href="{{URL::route('accept-product')}}/{!! $productAccept->id !!} ">Accept</a> 
@endforeach 

@foreach($product as $productAccept) 
    <a href="{{ route('accept-product', [$productAccept->id]) }}">Accept</a> 
@endforeach 

可以傳遞id作爲第二個參數route函數(或URL::route),路線是一個輔助函數相同相同URL::route

  • 你可以做模型綁定
  • Route::model('product', 'Products');

    和路線會

    Route::get('accept/{product}',array(
        'as'=>'accept-product', 
        'uses'=>'[email protected] 
    )); 
    

    ,你可以在控制器中獲取產品作爲

    public function updateProduct($product) 
    { 
        $product->conditions = 'accept'; 
        $product->save(); 
    }