在 Slim 中创建一个搜索字段

Creating a search field in Slim

我确定这将是一个愚蠢的问题,因为它看起来很明显,但我花了太长时间寻找答案。我正在使用 Slim 2.6、eloquent 和 twig,我有点生疏了。

我正在为我工​​作的大学开发一个现有但仍然非常基本的化学品库存管理系统,只想添加搜索功能。我的路线本身在工作,所以如果我在 url /find/mySearchTerm 上键入 append 它会完全按预期工作,但我无法弄清楚如何 pass/pull 将搜索词添加到路线中。

这是我的路线,手动可以正常工作:

$app->get('/find/:searchterm', function($searchterm) use ($app) {
    $chemicals = $app
         ->chemical
         ->where('item', 'LIKE', "%$searchterm%")
         ->orWhere('catalogue', 'LIKE', "%$searchterm%")
         ->get();
});

我可以使用 javascript 或 DOM 或其他东西来提取字段的文本并将其添加进去,但这看起来不像......苗条的 / eloquent / 树枝方式。

<form method='post' action ="{{ urlFor('search', { searchterm: searchterm } ) }}">
    Search: <input type='text' name='searchterm' />

如有任何建议,我们将不胜感激。希望我没有漏掉一些明显的东西。

所以我终于实现了我想做的事情,我肯定是想多了。我添加了主页 post 路由并从表单提交中调用它,而不是直接调用 'search' 并传入从 post 请求中检索到的搜索词。搜索路线同上

<form method='post' action ="{{ urlFor('home.search' ) }}">

我的Post方法

$app->post('/', function() use ($app) { 
$request = $app->request;   
$searchterm = $request->post('searchterm');

$app->response->redirect($app->urlFor('search', [
    'searchterm' => $searchterm 
 ]));

})->name('home.search');