Я использую lumen для разработки REST API. Я использовал для этого 2 модели User
и Post
. В моей модели User
я могу получить все сообщения пользователя, используя метод hasMany()
:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
// ...
public function posts()
{
return $this->hasMany('App\Post');
}
// ...
Очень полезно получить все мои сообщения пользователя:
return response()->json(User::find($id)->posts, 200);
Проблема в что у модели Post
есть некоторые скрытые атрибуты, которые не отображаются в ответе (что является нормальным поведением), но для некоторого запроса мне нужно их вернуть. Для этой цели laravel предоставляет метод под названием makeVisible () . Поэтому я решил использовать его в своем методе posts()
:
public function posts()
{
return $this->hasMany('App\Post')->makeVisible(['hiddenAttribute', ...]);
}
Но, к сожалению, все не так просто, и я получаю эту ошибку:
Call to undefined метод Illuminate \ Database \ Eloquent \ Relations \ HasMany :: makeVisible ()
Кто-нибудь знает, как я могу использовать оба этих метода вместе?