@GaserV

Как вывести название категории правильно?

Добрый день. Такая ситуация. Есть метод posts():
public function posts()
	{

		$posts = Post::orderBy('id','desc') -> get();
		return view('admin/posts', compact('posts'));

	}


Модель Post:
class Post extends Model 
{	

	public $timestamps = false;

	protected $table = 'posts';

	protected $fillable = ['','title','content','image','category','date'];

	public function category()
	{
		return $this->hasOne('App\Category', 'id', 'category_id');
	}


}


РЕШЕНО! Вем списибо огромнейшее просто)
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Во-первых, всегда используйте названия моделей в singular форме. К примеру: "Post", "Category", "Action", "User" и тд.
Во-вторых, в модели Post вы должны юзать $this->hasOne, что дословно означает "имеет одну". Пост же имеет категорию, верно? Так и пишите. Вы пишите "belongsTo", то-есть "принадлежит" - так пост категории принадлежит? То-есть категория имеет пост, а не пост имеет категорию? Конечно-же нет, у поста есть категория, а категория не может принаделжать одному посту, по-этому в категории должен (не обязательно) быть метод "posts() { return $this->belongsToMany(Post::class); }".

А вообще - читайте документацию. Хорошо читайте, и еще можете купить подписку на laracasts.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
seoperin
@seoperin
Full stack web developer. Laravel / Vue
Смотрите в доках по связи
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы