Вызов неопределенного метода с Eloquent в Laravel5.1

1

Я использую Laravel 5.1 и испытываю ошибку

Вызов неопределенного метода Illuminate\Database\Eloquent\Collection :: votes()

при хранении данных.

Бизнес модель

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);

По какой-то причине он не может найти метод голосования. Я застрял.

Теги:
eloquent
laravel-5.1

2 ответа

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 возьмет имя "змеиный случай" модели-владельца и суффикс его с помощью _id. Итак, для этого примера, Eloquent будет считать, что внешний ключ на Comment model - post_id.

HasMany In Laravel

  • 0
    Спасибо. Я обновил свой вопрос с помощью остальной части кода в моей модели. Похоже, только одно различие в пространстве имен.
0

вы можете вызывать голоса на одном экземпляре модели, а не на коллекции. так что сначала foreach over $ business, а затем вызовите голоса по одному экземпляру.

  • 0
    Спасибо! Так что, по моему мнению, мне нужно по два для каждого, сначала для бизнеса, а затем внутри этого для голосов? Просто убедившись, что я правильно понял.
  • 0
    на самом деле, потому что вы получили коллекцию предприятий, а затем голосование по бизнес-инстанции даст вам набор голосов, так что будьте внимательны снова :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню