【发布时间】:2017-07-20 09:52:08
【问题描述】:
如果我尝试在邮递员上运行我的帖子,我会收到此错误消息:
BadMethodCallException
调用未定义的方法 Illuminate\Database\Query\Builder::posts()
我的路线如下所示:
Route::middleware('auth:api')->group(function ()
{
Route::get('posts', ['as' => 'posts', 'uses' => 'Api\PostController@index']);
}
而控制器是这样的:
class PostController extends Controller
{
public function index()
{
$posts = Auth::client()->posts()->get();
dd($posts);
return response()->json(['data' => $posts], 200, [], JSON_NUMERIC_CHECK);
}
}
我的客户模型:
class Client extends Model implements AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword, HasApiTokens, Notifiable;
protected $table = 'clients';
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password', 'remember_token'];
public function posts()
{
return $this->hasMany(Post::class);
}
}
还有我的 Post 模型:
namespace App;
use App\Client;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function client()
{
return $this->belongsTo(Client::class);
}
}
如果我转储这个:$posts = Auth::user()->get();
我得到了一个输出,但我想得到帖子输出。
【问题讨论】:
-
你定义了用户和帖子模型之间的关系吗?
标签: php laravel laravel-5.4 laravel-query-builder