Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.06.2014 14:26:33

Олег

Вывод данных из контроллера во view

Добрый день,
  Laravel - мой первый фреймворк, пользуюсь я им около 3 месяцев. В наличии огромное обилие вопросов, буду очень благодарен, если сможете пролить свет на некоторые из них.

  Сейчас делаю интернет магазин, у меня есть контроллер "ProductsController.php" и есть view "products.blade.php". Мне во view нужно вывести список всех товаров + количество отзывов + оценка + вывести скидку (если она есть), т.е. провести вычисления с датами и указать сколько скидка в процентах.

  У меня это выглядит так:

Controller:

    public function productsIndex() {
        $page = Page::whereAlias('products')->first();
        $products = Product::all();
        $categories = ProductCategory::all();
        $data = compact('page', 'products', 'categories');
        return View::make('products', $data);
    }

View:

@foreach ($products as $product)
  <?php
  $image = $product->image;
  $id_in_array = str_split($product->id);
  $path = implode('/', $id_in_array);
  ?>
  <a href=''>{{$product->title}}</a>
  ...
  @if($product->discount != 0) // сейчас пока проверяю просто на наличие скидки, но нужно вычислить исходя из дат начала и окончания скидки.
  <?php
  $discount = round($product->discount / ($product->price / 100));
  echo $test;
  ?>%
  @endif

Но эти же все вычисления, как я понимаю - должны происходить в контроллере?

Вообщем как лучше реализовать всякие вычисления, передавать объекты во view?

#2 06.06.2014 14:48:42

Олег

Re: Вывод данных из контроллера во view

Все модели и связи у меня есть, проблема в том, что допустим вывести какие то единичные данные не проблема, а вот вывести целую охапку обработанных данных - не знаю как ;(

#3 06.06.2014 20:21:57

Re: Вывод данных из контроллера во view

  1. <a href=''>{{$product->title}}</a>

Здесь у вас будет нарушена разметка, если в названии товара есть < >.

  1. Но эти же все вычисления, как я понимаю — должны происходить в контроллере?

Конечно. Просто уберите все блоки с <?php ?> из шаблона и перенесите в контроллер в собственный foreach.

  1. а вот вывести целую охапку обработанных данных — не знаю как ;(

Циклом прямо в шаблоне, просто без вычислений.

Не в сети

Подвал раздела