Я обновляю и рефакторинг своего сайта до laravel 5.5, и этот код на данный момент вызывает у меня проблему. Я искал в документах laravel github и не нашел никаких критических изменений, которые могли бы повлиять на это.
То, что я пытаюсь сделать, это раздел Связанные с на моем сайте. На каждой странице рецепта я хочу отобразить еще несколько рецептов той же категории.
Вот мой код:
public static function getRelatedRecipes($recipe){
$related_category_ids = $recipe->category()->pluck('categories.id');
return $relatedRecipes =
Recipe::whereHas('categories', function ($q)use($related_category_ids){
$q->whereIn('category_id', $related_category_ids);
})
->where('id', '<>', $recipe->id)
->take(4)
->inRandomOrder()
->get();
}
Это модель рецепта:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Recipe extends Model
{
protected $guarded=[];
/**
* Get the route key name for Laravel.
*
* @return string
*/
public function getRouteKeyName()
{
return 'slug';
}
public function category()
{
return $this->belongsToMany('App\Category');
}
}
В чем может быть проблема?
Спасибо,
P.S.
Если какой-либо другой код, который, по вашему мнению, необходим для решения этой проблемы, сообщите мне, и я опубликую его здесь. :)
Recipe
скорее всего не то, что вы думаете. - person Ohgodwhy   schedule 07.09.2017dd($recipe)
получу полный рецепт. - person GabMic   schedule 07.09.2017Recipe
модель. - person Marwelln   schedule 07.09.2017$recipe
не то, что ты думаешь. Я сказал, чтоRecipe
не то, что ты думаешь. Каков путь к этому классу с полным пространством имен? Какие отношения внутри него / - person Ohgodwhy   schedule 07.09.2017Call to undefined method whereHas()
. - person GabMic   schedule 07.09.2017