什么是Laravel的类似的方法,以PDO :: FETCH_ASSOC?

问题描述 投票:1回答:1

我更新我的使用Laravel框架5.3 PHP PDO网站。我发现Laravel非常容易使用,但也有我不知道的语法出成效一些功能。

我有一个Laravel控制器

 public function index(){

        $posts = Post::latest()->get();

        return view('/home', compact('posts'));
    }

我在叶片使用使用foreach循环来提取数据

@foreach ($posts as $row)

@endforeach

其类似于使用fetchall()在PDO方法

$row = $posts->fetchAll();

现在我想的逻辑得到取(PDO :: FETCH_ASSOC)一样的结果,这样我可以分配

$row = $posts->fetch(PDO::FETCH_ASSOC);

我不得不这样做,因为我想用for循环中的刀片来显示数据,如果我使用foreach循环,然后它迭代结果造成重复。以下是PDO的代码,我有Laravel更新

for($i=0; $i<$count_photos; $i++){

        $row_gallery = $get_photos->fetch(PDO::FETCH_ASSOC);

        $pst_id = $row_gallery['post_id'];
        $img = $row_gallery['img_name'];


        echo '<div class="img_gallery"><div class="gallery'.$i.'"><a href="uploads/'. $img . '" data-lightbox="'.$pst_id.'"> <img class="img-responsive" src="uploads/'. $img . '"></a></div></div>';

      } 
php mysql laravel pdo laravel-5.3
1个回答
2
投票

该车型将已经被取出,当您使用get()这样你就可以在模型例如访问属性直线距离

@foreach ($posts as $post)

    {{ $post->title }} //assuming you have a "title" column in the database

@endforeach

你可能会有所帮助:https://laracasts.com/series/laravel-from-scratch-2017/episodes/7


编辑

如果你有photos关系在Post模型建立,那么你可以eager load的关系。此外,由于您只需要加载一个职位,你可以用它代替first() get()所以你会用下列结束:

控制器:

public function index()
{
    $posts = Post::with('photos')->latest()->first();

    return view('/home', compact('posts'));
}

刀片文件

@foreach($post->photos as $k => $photo)
    <div class="img_gallery">
        <div class="gallery{{ $k }}">
            <a href="{{ url('uploads/'.$photo->img_name) }}" data-lightbox="{{ $post->id }}">
                <img class="img-responsive" src="{{ url('uploads/'.$photo->img_name) }}">
            </a>
        </div>
    </div>
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.