Codeigniter 4中的参数传递路由问题
Parameter passing through routing problem in Codeigniter 4
我有一点路由问题,我无法在 Codeigniter 4 中解决。
我尝试在删除列表项时添加一个参数。但是得到如下错误信息。
Error message at post routing: Controller or its method is not found:
\App\Controllers\Userfeed::delete
Error message at add or get routing: Controller or its method is not found:
\App\Controllers\Pages::index
控制器文件目录:
Route文件的相关部分(在Config目录下):
$routes->get('/', 'Pages/Home::index');
$routes->get('userfeed', 'Pages/UserFeed::index');
$routes->post('userfeed/add', 'Pages/UserFeed::add');
//$routes->add('userfeed/(:any)', 'Pages/UserFeed::delete');//this works fine
$routes->get('userfeed/(:any)', 'Pages/UserFeed::delete');//this works fine
//$routes->get('userfeed/(:any)', 'Pages/UserFeed::delete/');//this is not work, which is the goal
//$routes->post('userfeed/(:any)', 'Pages/UserFeed::delete/');//this is not work
//$routes->add('userfeed/(:any)', 'Pages/UserFeed::delete/');//this is not work
...
控制器相关部分:
namespace App\Controllers\Pages;
use App\Controllers\MainCtrl;
...
class UserFeed extends MainCtrl{
....
public function delete($id=FALSE)
{
var_dump('wooot?');
var_dump($id);
}
}
视图部分:
....
<a class="badge badge-secondary" href="<?php echo base_url('userfeed/delete/'.$rss['id']);?>" >Töröl</a>
....
但是如果我从根控制器目录中的这个控制器创建一个副本,它就可以工作了。
$routes->get('userfeed/delete/(:any)', 'UserFeed2::delete/');//it's working fine
如果需要更多信息,请告诉我。
谢谢你的帮助! :)
注意:谢天谢地,发现问题了。 :)
一猜一奖。 =)
试试这个
$routes->get('userfeed/delete/(:any)', 'Pages\UserFeed::delete/');
区别在于使用的斜杠。您必须使用反斜杠 () 而不是正斜杠 (/)
我有一点路由问题,我无法在 Codeigniter 4 中解决。 我尝试在删除列表项时添加一个参数。但是得到如下错误信息。
Error message at post routing: Controller or its method is not found: \App\Controllers\Userfeed::delete
Error message at add or get routing: Controller or its method is not found: \App\Controllers\Pages::index
控制器文件目录:
Route文件的相关部分(在Config目录下):
$routes->get('/', 'Pages/Home::index');
$routes->get('userfeed', 'Pages/UserFeed::index');
$routes->post('userfeed/add', 'Pages/UserFeed::add');
//$routes->add('userfeed/(:any)', 'Pages/UserFeed::delete');//this works fine
$routes->get('userfeed/(:any)', 'Pages/UserFeed::delete');//this works fine
//$routes->get('userfeed/(:any)', 'Pages/UserFeed::delete/');//this is not work, which is the goal
//$routes->post('userfeed/(:any)', 'Pages/UserFeed::delete/');//this is not work
//$routes->add('userfeed/(:any)', 'Pages/UserFeed::delete/');//this is not work
...
控制器相关部分:
namespace App\Controllers\Pages;
use App\Controllers\MainCtrl;
...
class UserFeed extends MainCtrl{
....
public function delete($id=FALSE)
{
var_dump('wooot?');
var_dump($id);
}
}
视图部分:
....
<a class="badge badge-secondary" href="<?php echo base_url('userfeed/delete/'.$rss['id']);?>" >Töröl</a>
....
但是如果我从根控制器目录中的这个控制器创建一个副本,它就可以工作了。
$routes->get('userfeed/delete/(:any)', 'UserFeed2::delete/');//it's working fine
如果需要更多信息,请告诉我。 谢谢你的帮助! :)
注意:谢天谢地,发现问题了。 :)
一猜一奖。 =)
试试这个
$routes->get('userfeed/delete/(:any)', 'Pages\UserFeed::delete/');
区别在于使用的斜杠。您必须使用反斜杠 () 而不是正斜杠 (/)