我试图在MySQL数据库中查询来自textarea的项目。我的控制器的store()
函数具有以下代码:
// [...] validation is done here and assumed ok
foreach(explode("\n", Input::get('itemlist')) as $line) {
$item = preg_split('/(?<=\d) (?=[a-z])|(?<=[a-z])(?=\d)/i', $line);
if (isset($item[1])) {
echo 'Looking for ' . $item[1];
$itemObj = DB::table('items')->select('name', 'id')->where('name', '=', trim($item[1], "\r"))->first();
var_dump($itemObj);
}
}
从Input::get('itemlist')
收到的数据是项目和金额的列表,如:
5 apples
2 oranges
1 banana
Looking for ...
部分正确显示项目名称。此外,var_dump
实际上会显示搜索到的最后内容的正确结果,其他所有内容都只是'null'
。
是否有DB:table
的某些内容停止在这样的循环中进行查询?我应该以其他方式这样做吗?谢谢!
编辑结果发现有落后&#39; \ r&#39;在除了最后一行之外的每一行之后,所以查询是针对&#34; Some Item \ r&#34;而不是&#34;某些项目&#34;。修正了它!