Я использую 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);
По какой-то причине он не может найти метод голосования. Я застрял.
Убедитесь, что модель загружена.
бывший
<?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
.
вы можете вызывать голоса на одном экземпляре модели, а не на коллекции. так что сначала foreach over $ business, а затем вызовите голоса по одному экземпляру.