2017-09-15 86 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

相關問題