Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день,
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?
Все модели и связи у меня есть, проблема в том, что допустим вывести какие то единичные данные не проблема, а вот вывести целую охапку обработанных данных - не знаю как ;(
- <a href=''>{{$product->title}}</a>
Здесь у вас будет нарушена разметка, если в названии товара есть < >.
- Но эти же все вычисления, как я понимаю — должны происходить в контроллере?
Конечно. Просто уберите все блоки с <?php ?> из шаблона и перенесите в контроллер в собственный foreach.
- а вот вывести целую охапку обработанных данных — не знаю как ;(
Не в сети
Страницы 1