在 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');
我确定这将是一个愚蠢的问题,因为它看起来很明显,但我花了太长时间寻找答案。我正在使用 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');