我无法更新数据库的特定列。在我的数据库中有一个"条件"列的默认值为" pending"。我想用值"接受"来更新此列,但我无法这样做。
我的routes.php
Route::get('accept/{id}',array(
'as'=>'accept-product',
'uses'=>'GoodsController@updateProduct
));
我的控制器:
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}
替换为7
,8
等整数。
我的routes
答案 0 :(得分:5)
您定义的路线需要一个额外参数 - id。您需要将路由功能中的产品ID作为额外参数传递,如下所示:
<a href="{{URL::route('accept-product', ['id' => $productAccept->id])}}">Accept</a>
答案 1 :(得分:2)
试试这个,
<a href="{{ route('accept-product', $productAccept->id)}}">Accept</a>
答案 2 :(得分:2)
使用网址
<a href="{!! URL::to('accept/$productAccept->id') !!}">Accept</a>
答案 3 :(得分:2)
t
您的问题来自:t
答案 4 :(得分:0)
我看到的最明显的问题可能是页面没有正确重定向。我的意思是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'=>'GoodsController@updateProduct
));
您可以在控制器中获取产品
public function updateProduct($product )
{
$product->conditions = 'accept';
$product->save();
}