邮编:所有();仅展示第一篇文章 - Laravel 5.6

时间:2018-04-02 19:18:21

标签: php laravel eloquent

php-fpm

嗨,我现在正在关注Laravel的教程,而且我已经在Eloquent的一部分了。我在我的数据库中发了2个帖子,帖子标题是" PHP"和#34; PHP 2"。我想知道为什么第一个(" PHP")是唯一出现的。我期待两个标题显示。我对PHP和Laravel非常陌生,所以我可能不理解" deep"您可能会使用的术语。谢谢!

2 个答案:

答案 0 :(得分:0)

您将在第一个循环中返回该名称。因此,它只返回名字。尝试使用Collection的implode函数:

use App\Post;

Route::get('/read',function(){

    $posts = Post::all();

    return $posts->implode('title', ', ');

});

参考:https://laravel.com/docs/5.6/collections

答案 1 :(得分:0)

让你的代码看起来不错,我认为如果你拆分你的控制器和路线^^会更好:

PostController中:

use App\Post;

public function getPost() {
   $posts = Post::all();

   foreach($posts as $post) { //if you want to display your post not in view
     echo $post->title;
   }

   // or

   return view('post')->with('posts', $posts); //if you want to display your post in view
}

路线:

Route::get('/read', 'PostController@getPost');

如果要在视图中显示,请创建一个帖子文件: post.blade.php

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
  @foreach($posts as $post)
    {{$post->title}}
  @endforeach
</body>
</html>