Size: a a a

Laravel для начинающих

2020 June 02

D

DK in Laravel для начинающих
ты что-то связью тянешь?
источник

K

KOSUMOV | ALI in Laravel для начинающих
DK
ты что-то связью тянешь?
да, категории и названия
источник

VY

Vladimir Yefremov in Laravel для начинающих
Что выводит dd()?
источник

K

KOSUMOV | ALI in Laravel для начинающих
Выводит то как надо. Просто думаю эффективно ли так
источник

D

DK in Laravel для начинающих
with же?
источник

D

DK in Laravel для начинающих
а то выглядит как n+1
источник

K

KOSUMOV | ALI in Laravel для начинающих
DK
with же?
да
источник

AH

Andrey Helldar in Laravel для начинающих
KOSUMOV | ALI
  $lastposts = Post::select('id', 'title','created_at', 'counter', 'category_id')
           ->where('id', '!=', $id)
           ->with('category')
           ->orderBy('created_at', 'DESC')
           ->limit(6)
           ->get();
$lastposts = Post::with('category')
   ->where('id', '!=', $id)
   ->latest('created_at')
   ->take(6)
   ->get(['id', 'title','created_at', 'counter', 'category_id']);

В сумме должно быть два запроса - один для таблицы posts и один для categories
источник

AH

Andrey Helldar in Laravel для начинающих
Кстати, вопрос: что у тебя написано в релейшене category в модели Post?
источник

K

KOSUMOV | ALI in Laravel для начинающих
Andrey Helldar
Кстати, вопрос: что у тебя написано в релейшене category в модели Post?
 public function category()
   {
       return $this->belongsTo('App\Category');
   }
источник

K

KOSUMOV | ALI in Laravel для начинающих
Andrey Helldar
$lastposts = Post::with('category')
   ->where('id', '!=', $id)
   ->latest('created_at')
   ->take(6)
   ->get(['id', 'title','created_at', 'counter', 'category_id']);

В сумме должно быть два запроса - один для таблицы posts и один для categories
Выполняет 2 запроса
источник

K

KOSUMOV | ALI in Laravel для начинающих
DK
with же?
Но не понимаю откуда берутся эти запросы
источник

AH

Andrey Helldar in Laravel для начинающих
KOSUMOV | ALI
 public function category()
   {
       return $this->belongsTo('App\Category');
   }
Здесь всё гут
источник

K

KOSUMOV | ALI in Laravel для начинающих
public function show($slug, $id)
   {
       $post = Post::select('id','title','excerpt','body','created_at','counter', 'category_id')
           ->where('status', 1)
           ->findorFail($id);

       $category = Category::where('slug', $slug)->firstorFail();

       $article = $category
           ->posts()
           ->where('id', '!=', $id)
           ->orderBy('created_at', 'DESC')
           ->limit(5)
           ->get();

       $lastposts = Post::with('category')
           ->where('id', '!=', $id)
           ->latest('created_at')
           ->take(6)
           ->get(['id', 'title','created_at', 'counter', 'category_id']);

     
      return view('post.view', compact('post',  'article', 'lastposts'));

   }
источник

K

KOSUMOV | ALI in Laravel для начинающих
вот мой контроллер
источник

K

KOSUMOV | ALI in Laravel для начинающих
Но но понимаю что за 6 запросов
источник

K

KOSUMOV | ALI in Laravel для начинающих
Andrey Helldar
Здесь всё гут
 $category = Category::where('slug', $slug)->firstorFail();

       $article = $category
           ->posts()
           ->where('id', '!=', $id)
           ->orderBy('created_at', 'DESC')
           ->limit(5)
           ->get();
источник

K

KOSUMOV | ALI in Laravel для начинающих
Вот этот кусок и выполняют эти 6  запросов
источник

AH

Andrey Helldar in Laravel для начинающих
KOSUMOV | ALI
public function show($slug, $id)
   {
       $post = Post::select('id','title','excerpt','body','created_at','counter', 'category_id')
           ->where('status', 1)
           ->findorFail($id);

       $category = Category::where('slug', $slug)->firstorFail();

       $article = $category
           ->posts()
           ->where('id', '!=', $id)
           ->orderBy('created_at', 'DESC')
           ->limit(5)
           ->get();

       $lastposts = Post::with('category')
           ->where('id', '!=', $id)
           ->latest('created_at')
           ->take(6)
           ->get(['id', 'title','created_at', 'counter', 'category_id']);

     
      return view('post.view', compact('post',  'article', 'lastposts'));

   }
/*
* В роутах дожно быть так:
*
* ->get('{category:slug}/{post}', 'YourController@show');
*/
public function show(Category $category, Post $post)
{
   $articles = $category
       ->posts()
       ->where('id', '!=', $post->id)
       ->latest()
       ->take(5)
       ->get();

   $lastposts = Post::with('category')
       ->where('id', '!=', $post->id)
       ->latest()
       ->take(6)
       ->get(['id', 'title', 'created_at', 'counter', 'category_id']);

   /*$post->increment('counter');*/

   return view('post.view', compact('post', 'articles', 'lastposts'));
}
источник

AH

Andrey Helldar in Laravel для начинающих
KOSUMOV | ALI
Вот этот кусок и выполняют эти 6  запросов
Именно этот кусок выполняет или вообще весь метод контроллера?
источник