我在控制器中的代码:
public function image_item_name($inc)
{
if(isset($_POST['inc'])) {
$inc = $_POST['inc'];
$i = DB::select("SELECT file_name FROM tbl_image_item_name WHERE inc = '$inc';");
foreach ($i as $a){
echo '<img src="../../{{ $a[0]->file_name }}">';
}
}else {
echo "Access Denied";
}
问题 : 我无法从数据库中循环图像,请帮助我。
代码中存在一些问题
- 你的查询是正确的,但你不需要访问$a[0]你已经检索了一个对象列表,每个对象都有一个"file_name"作为属性,所以直接通过$a->file_name访问它。 {
- { }} 是为刀片模板引擎(即 .blade.php 文件(设计的语法,您无法在普通.php文件中使用它们。
- 当用 laravel 坚持使用 laravel 方式编码时,不要使用本机全局 php 变量作为 $_GET 和 $_POST 当你有 'request((' 助手时。
您的查询如此暴露在SQL注入中,因此不要使用原始SQL查询,除非您用预准备语句将其括起来。
public function image_item_name($inc) { if(isset(request('inc'))) { $inc = request('inc'); $i = DB::select("SELECT file_name FROM tbl_image_item_name WHERE inc = ?;",[$inc]); foreach ($i as $a){ echo '<img src="../../'.$a->file_name.'">'; } } else { echo "Access Denied"; }
尝试
$images = DB::table('tbl_image_item_name')->where('inc', $inc)->get();
foreach ($images as $image){
echo '<img src="../{{ $image->file_name }}">';
}
或雄辩的方式
$images = YourModelName::where('inc', $inc)->get();