Builder.php中的BadMethodCallException
我没有太多的运气去克服下面的错误Builder.php中的BadMethodCallException,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我没有太多的运气去克服下面的错误 BadMethodCallException in Builder.php Call to undefined method Illuminate\Database\Query\Builder::posts() 我正在做的项目是一个简单的社交网络时间表。 尽管我在呼叫以下路线时卡住了(创建帖子) POST返回我在上面指定的500错误。快速搜索“未实现”方法posts()将返回: 因为我很难找出这个错误,所以我很乐意详细说明您需要的任何文件。 谢谢 正如Khal
BadMethodCallException in Builder.php
Call to undefined method Illuminate\Database\Query\Builder::posts()
我正在做的项目是一个简单的社交网络时间表。
尽管我在呼叫以下路线时卡住了(创建帖子)
POST返回我在上面指定的500错误。快速搜索“未实现”方法posts()将返回:
因为我很难找出这个错误,所以我很乐意详细说明您需要的任何文件。
谢谢
正如Khalid Dabjan所说,我修改了函数“create”以包含以下行“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));
}
多亏@Khalid Dabjan插入了我的代码,我自己修复了这个错误。
对于我的用户模型,我使用了错误的文件,出于某种原因,我使用了两个文件,而应用了一个没有posts()方法的文件。
我不知道为什么要使用两个User.php文件,但最好还是留到另一个问题上来,因为这个问题的答案现在已经很清楚了:
我没有在正确的模型上实现function posts(),这就是为什么我得到了一个“函数不存在”错误。由于@Khalid Dabjan插入了我的代码,我自己修复了这个错误。
对于我的用户模型,我使用了错误的文件,出于某种原因,我使用了两个文件,而应用了一个没有posts()方法的文件。
我不知道为什么要使用两个User.php文件,但最好还是留到另一个问题上来,因为这个问题的答案现在已经很清楚了:
我没有在正确的模型上实现函数posts(),这就是为什么我得到了一个“函数不存在”错误。在create函数中,您可以尝试dd($request->user())代码>并用该输出更新您的问题。感谢您的输入@KhalidDabjan我认为您的问题在于模型的名称空间,Post
模型和用户
模型的名称空间是什么?@KhalidDabjan我的名称空间只是两种模型的应用程序名称。以任何方式编辑它们都会在create函数中给我一个反射异常“class不存在”,你能试试dd($request->user())代码>并用该输出更新您的问题。感谢您的输入@KhalidDabjan我认为您的问题在于模型的名称空间,Post
模型和用户
模型的名称空间是什么?@KhalidDabjan我的名称空间只是两种模型的应用程序名称。以任何方式编辑它们都会给我一个反射异常“类不存在”这是任何遇到类似错误的人都可能感兴趣的传统信息这是任何遇到类似错误的人都可能感兴趣的传统信息
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 ]);
<?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));
}