2017-09-15 35 views
1

我正在使用Laravel Framework 5.3更新我的php PDO网站。我发现laravel非常易于使用,但是很少有函数我不知道获得结果的语法。任何帮助将非常感激。Laravel与PDO类似的方法是什么:: FETCH_ASSOC

我有一个laravel控制器

public function index(){ 

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

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

我在叶片使用PDO

$row = $posts->fetchAll(); 
使用foreach循环

@foreach ($posts as $row) 

@endforeach 

其类似于使用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>'; 

     } 

在此先感谢您的帮助

+1

你想做什么?刚刚从表中获得第一行?如果是这样,那么只需执行'Post :: latest() - > first();'它只返回一行/对象。 – aynber

+1

'Post'与'$ get_photos'查询有什么关系? –

+0

@罗斯,我有两张桌子,一张是贴子,另一张是照片。照片表格可以包含与单个帖子相关联的多张照片。我在模型中使用了hasMany()关系来获取照片以及该帖子。 – chris

回答

2

的车型将已经被取出,当您使用get()这样你就可以访问属性在模型上直接例如如果你有photos关系在Post模型建立,那么你可以eager load的关系https://laracasts.com/series/laravel-from-scratch-2017/episodes/7


编辑

@foreach ($posts as $post) 

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

@endforeach 

您可能会发现这是很有帮助的。此外,由于您只需要加载一个职位,你可以使用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 

希望这会有所帮助!

+0

Thanks @Ross for回复。我不能使用foreach循环,因为我试图在for循环中获取数据,如果我使用foreach,那么对于每次迭代它重复获取的数据。我必须使用fetch_assoc类似于每个迭代只有一个值 – chris

+1

@chris你只是想获得一个帖子? –

+0

,这对我的工作非常感谢您的解决方案。 – chris

相关问题