我没有太多运气来解决以下错误
BadMethodCallException in Builder.php
Call to undefined method Illuminate\Database\Query\Builder::posts()
我正在进行的项目是社交网络的简单时间表。 虽然我在调用以下路线时遇到困难(创建帖子)
Route::group(['middleware' => ['web', 'auth']], function () {
Route::get('home', 'TimelineController@index');
Route::post('/posts', 'PostController@create');
});
POST返回上面指定的500错误。快速搜索"未实现的"方法posts()返回:
Searching 5094 files for "posts()"
C:\Users\Administrator\Code\instyle\app\User.php:
16 ];
17
18: public function posts()
19 {
20 return $this->hasMany('Instyle\Post');
C:\Users\Administrator\Code\instyle\app\Http\Controllers \PostController.php:
17 ]);
18
19: $createdPost = $request->user()->posts()->create([
20 'body' => $request->body,
21 ]);
由于我在查明此错误时遇到问题,因此我很乐意详细说明您需要的任何文件。 谢谢!
正如Khalid Dabjan所说,我修改了功能"创建"包括以下行" dd($ request-> user());"
结果是来自服务器的200响应,其中包含一个JSON,其中包含与登录用户相关的所有信息。
我的帖子控制器如下:
<?php
namespace Instyle\Http\Controllers;
use Illuminate\Http\Request;
use Instyle\Http\Requests;
use Instyle\Http\Controllers\Controller;
use Instyle\Post;
class PostController extends Controller
{
public function create(Request $request, Post $post)
{
$this->validate($request, [
'body' => 'required|max:600',
]);
$createdPost = $request->user()->posts()->create([
'body' => $request->body,
]);
return response()->json($post->with('user')->find($createdPost->id));
}
}