在Laravel5.1中使用Eloquent调用未定义的方法

时间:2015-10-09 12:12:46

标签: php eloquent laravel-5.1

我正在使用Laravel 5.1并遇到错误

  

调用未定义的方法   照亮\数据库\锋\收藏::票()

存储数据时

商业模式

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Business extends Model
{
public function votes()
    {
        return $this->hasMany('App\Models\Vote');
    }
}

然后表单POST请求

$business = Business::where('business_area', $request->input('business_area'))->get();

        $vote = $business->votes()->create($request->all());

        return response()->json($vote, 201);

由于某种原因,它无法找到投票方法。我被卡住了。

2 个答案:

答案 0 :(得分:1)

确保已加载模型。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    /**
     * Get the comments for the blog post.
     */
    public function comments()
    {
        return $this->hasMany('App\Comment');
    }
}
  

请记住,Eloquent会自动确定Comment模型上的正确外键列。按照惯例,Eloquent将采取&#34;蛇案例&#34;拥有模型的名称,并以_id为后缀。因此,对于此示例,Eloquent将假定Comment model上的外键为post_id

HasMany In Laravel

答案 1 :(得分:0)

您可以在单个模型实例上调用投票,而不是在集合上调用投票。所以首先要对$ business进行预告,然后对单个实例进行投票。