В laravel, как я могу использовать цикл foreach? - PullRequest
0 голосов
/ 15 мая 2018

Когда я использую этот код:

Route::get('/user/{id}/posts', function ($id){
   $post = User::find($id)->postst;
   return $post;
});

Вывод:

[
    {
        "id":1,
        "user_id":1,
        "title":"Eloquent Basic Insert",
        "content":"By eloquent we can easily insert a data and it is awesome",
        "created_at":"2018-05-15 14:45:34",
        "updated_at":"2018-05-15 14:45:34",
        "deleted_at":null
    },
    {
        "id":2,
        "user_id":1,
        "title":"Add with create",
        "content":"This might be fail",
        "created_at":"2018-05-15 14:47:59",
        "updated_at":"2018-05-15 14:47:59",
        "deleted_at":null
    }
]

Но когда я использую цикл foreach, он показывает только один массив

 Route::get('/user/{id}/posts', function ($id){
   $post = User::find($id)->postst;
   foreach ($post as $post){
       return $post->title. '<br>';
   }
});

И вывод для этого кода:

Eloquent Basic Insert

Как я могу показать все заголовки массива в браузере? а что не так в моем коде?

Ответы [ 3 ]

0 голосов
/ 15 мая 2018

Просто для чего-то другого, вы должны быть в состоянии сделать что-то вроде:

Route::get('/user/{id}/posts', function ($id){
    $posts = User::with('posts')->find($id)->posts;
    return $posts->pluck('title');
});
0 голосов
/ 15 мая 2018

Просто замените возвращаемое слово на echo, и оно будет работать нормально

 Route::get('/user/{id}/posts', function ($id){
 $post = User::find($id)->postst;
  foreach ($post as $post){
   echo $post->title. '<br>';
  }
});
0 голосов
/ 15 мая 2018

То, что вы делаете, возвращает заголовок в первом цикле.Вам нужно убрать return из вашего foreach:

Route::get('/user/{id}/posts', function ($id){
   $post = User::find($id)->postst;
   $titles = "";
   foreach ($post as $post){
       $titles .= $post->title. '<br>';
   }
   return $titles;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...