Laravel - 调用未定义的方法Illuminate \ Database \ Query \ Builder :: user()

时间:2016-06-21 00:31:13

标签: php sqlite laravel

我忙于Laravel From Scratch: Updating Records and Eager Loading。我跟着tut但是在尝试在CardsController中添加用户数据时遇到此错误。我假设我错过了卡片用户关系中的一个步骤,但我已经观看了3次视频,我的数据库查询用户,卡片和放大器注意与视频完全匹配。

在通过迁移创建Users表后,我需要执行另一个步骤吗?

错误

BadMethodCallException in Builder.php line 2345:

调用未定义的方法Illuminate \ Database \ Query \ Builder :: user()

CardsController代码

<?php
namespace App\Http\Controllers;
use App\Card;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class CardsController extends Controller
{
    public function index()
    {
        $cards = Card::all();
        return view('cards.index', compact('cards'));
    }

    public function show(Card $card)
    {
        $card = Card::with('notes.user')->get();
        return $card;
        return view('cards.show', compact('card'));
    }
}

3 个答案:

答案 0 :(得分:10)

您的note模型缺少关联user的关系定义,看起来像。

您应该能够在Notes模型中添加关系,如下所示:

public function user()
{
    return $this->belongsTo(User::class);
}

答案 1 :(得分:1)

该视频确实存在一些问题,因此我也遇到了同样的问题。 您应该能够在Note模型中添加关系,如下所示:

 <?php
 // Initialize the session.
 session_start();
 // If you are using session_name("something"), don't forget it now!
  if(isset($_POST['logout'])){


  //What ever you want

  // Finally, destroy the session.

  unset( $_SESSION );
  session_destroy();

  //redirect to loginpage
  header('Location:../login.php');
  exit;
  }
 ?>

并在用户模型中如下:

public function user()
{
    //return $this->belongsTo(User::class);
    return $this->belongsTo('App\User');
}
保佑你!

答案 2 :(得分:-1)

phpMyAdmin –错误

对配置文件的权限错误,应该是不可写的!

从错误消息中,可以看出问题是由于配置文件config.inc.php的文件权限不正确造成的。

我尝试将文件更改为705、755等,但是没有任何效果。

为解决此问题,我在config.inc.php文件中添加了以下代码行:

$cfg['CheckConfigurationPermissions'] = false;