• Неизвестная переменная в Laravel как исправить?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    UPD: прежде чем отрисуется news.blade.php сначала грузится ваш шаблон index (@extends('index')), где $articles не существует
    Решение: в news.blade.php не должно быть никаких @extends

    ---------------------------------------
    нужно больше кода, поправьте вопрос и добавьте шаблон и эту вьюшку default.articles.news.blade.php

    а пока вот этот недочет:
    class ArticleController extends Controller
    {
        public function index($id)
        {
            $article = Article::query()->select('*')->where('id', $id)->first();
    
            return view('default.articles.news', ['article' => $article]);
        }
    }


    вот еще улучшение для ArticleController:
    use App\Article;
    
    class ArticleController extends Controller
    {
        public function index(Article $article)
        {
            return view('default.articles.news', ['article' => $article]);
        }
    }


    но в идеале ArticleController должен выдавать все статьи в методе index, а показывать отдельную статью в методе show,
    а IndexController вообще не нужен, в данном случае
    Ответ написан
    4 комментария
  • Как выполнить запрос в Laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    Во первых у вас в запросе ошибка. Она должно быть как-то так.
    SELECT * FROM `cards` 
    INNER JOIN `mechanics_field` ON `mechanics_field`.card_id=`cards`.id
    WHERE `mechanics_field`.`mechanics_id` = 1 and `cards`.`cost` = 3


    А этот же запрос в конструкторе Laravel:

    $result = DB::table('cards')
    	->join('mechanics_field', 'mechanics_field.mechanics_id', '=', 'cards.mechanic_id')
    	->where(['mechanics_field.mechanics_id' => 1, 'cards.cost' => 3])
    	->get();


    А если имеется модель Card, то можно так написать:
    $result = Card::where(['mechanics_field.mechanics_id' => 1, 'cards.cost' => 3])
    			->select('cards.*')
    			->join('mechanics_field', 'mechanics_field.mechanics_id', '=', 'cards.mechanic_id')
    			->get();
    Ответ написан
    Комментировать
  • Как начать просматривать список сначала?

    longclaps
    @longclaps
    int DList::ListNodeNumber() {
      int counter = 0;
      DNode *t = head;
      while (t) {
        t = t->next;
        counter++;
      }
      return counter;
    }
    Ответ написан
    2 комментария