Я думаю, что есть ошибка.Вы сказали, что у вас есть эта функция в вашем BucketController
public function defaultBuckets()
{
$buckets = Bucket::where('bucket_type', 'default')->get();
}
, а затем вы запускаете функцию из пользовательской модели в вашем ProfileController
$profile = $user->where('id', $user->id)->defaultBuckets()->with([
'posts', 'likes', 'followers', 'following'])->first();
По этой причине в нем говорится, что нет функции с именем "defaultBuckets".
Вы должны поместить эту функцию в вашу Модель пользователя , и все будет работатьхорошо.
Также не забудьте вернуть ведра так же, как это:
Чтобы вернуть все ведра
public function defaultBuckets()
{
$buckets = Bucket::where('bucket_type', 'default')->get();
return $buckets; // all buckets
}
Чтобы вернуть только пользовательские корзины
public function defaultBuckets()
{
return $this->hasMany(Bucket::class)->where('bucket_type', 'default');
}
Обязательно примите отношения от пользователя в модель ковша , например:
public function user(){
return $this->hasOne(User::class, 'bucket_id' , 'user_id');
}
Вы можете заменитьимена столбцов (bucket_id, user_id) в соответствии с вашей базой данных.
Дайте мне знать, если это решит вашу проблему