我希望有一个控制器处理网址,如... / item / list和... / item / list / 5。 第一个是显示所有项目,第二个是显示作者ID = 5的项目。
public function getList($userid) {
$items = \DB::table('items')->get();
if ($userid) $items = \DB::table('items')->where('user_id', '=', $userid)->get();
foreach ($items as $item) {
// ...
}
}
.../item
之类的网址缺少参数。
有没有办法解决这个问题?
答案 0 :(得分:0)
我认为您的路线如下:
Route::get('item/{userid}', 'MyController@getList');
但如果没有身份证会怎么样? 让我们改变你的逻辑: 如果url中有userId,则显示用户的项目。如果没有id显示全部。
所以改变你的路线:
Route::get('item/{userid?}', 'MyController@getList');
还有你的功能:
public function getList($userid = null) {
$items = \DB::table('items')->get();
if ($userid) $items = \DB::table('items')->where('user_id', '=', $userid)->get();
foreach ($items as $item) {
// ...
}
}
答案 1 :(得分:0)
使用可选参数
创建路线Route::get('item/list/{userid}', 'MyController@getList');
然后将函数中的userid
更改为具有默认参数值
public function getList($userid = '') {
$query = \DB::table('items');
if ($userid) {
$query->where('user_id', '=', $userid);
}
$items = $query->get();
foreach ($items as $item) {
// ...
}
}