控制器中的循环图像



我在控制器中的代码:

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";
}

问题 : 我无法从数据库中循环图像,请帮助我。

代码中存在一些问题

  1. 你的查询是正确的,但你不需要访问$a[0]你已经检索了一个对象列表,每个对象都有一个"file_name"作为属性,所以直接通过$a->file_name访问它。
  2. {
  3. { }} 是为刀片模板引擎(即 .blade.php 文件(设计的语法,您无法在普通.php文件中使用它们。
  4. 当用 laravel 坚持使用 laravel 方式编码时,不要使用本机全局 php 变量作为 $_GET 和 $_POST 当你有 'request((' 助手时。
  5. 您的查询如此暴露在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();

最新更新