Laravel по-русски

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

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

#1 02.09.2019 14:50:46

Как из простого массива двумя параметрами вывести инф. во view?

Добрый день.
Помогите, пожалуйста, настроить вывод из массива двумя параметрами (/avto/{id1}/{id2}) передать в представление информацию об авто? Параметрами необходимо передать данные значений 'idcat' и 'numcat' (эти значения уникальны для каждой карточки авто, условно idcat - номер каталога, а numcat - номер в каталоге).
Информация из web.php

Route::get('/avto/{id1}/{id2}', 'AvtoController@showAvto');

Информация из контроллера AvtoController.php

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;

class AvtoController extends Controller
{
	private $avto;

	public function __construct()
	{
		$this->avto = [
			"bmw" =>
				[
					"model" => "BMW",
					"color" => "red",
					"year" => "2010",
					"mark" => "M5",
					"idcat" => 1,
					"numcat" => 2,
					"park" => 111,
					"cost" => 22000,
					"inStock" => true,
					"lservice" => "A",
				],

			"audi" =>
				[   "model" => "AUDI",
					"color" => "black",
					"year" => "2011",
					"mark" => "TT",
					"idcat" => 1,
					"numcat" => 3,
					"park" => 111,
					"cost" => 32000,
					"inStock" => true,
					"lservice" => "A",
				],

			"dodge" =>
				[
					"model" => "DODGE",
					"color" => "blue",
					"year" => "2005",
					"mark" => "TT",
					"idcat" => 2,
					"numcat" => 3,
					"park" => 333,
					"cost" => 23500,
					"inStock" => false,
					"lservice" => "D",
				],

			"honda" =>
				[
					"model" => "HONDA",
					"color" => "grey",
					"year" => "2013",
					"mark" => "CR-V",
					"idcat" => 2,
					"numcat" => 1,
					"park" => 222,
					"cost" => 20100,
					"inStock" => true,
					"lservice" => "E",
				],

			"volvo" =>
				[
					"model" => "VOLVO",
					"color" => "black",
					"year" => "2007",
					"mark" => "C70",
					"idcat" => 1,
					"numcat" => 1,
					"park" => 111,
					"cost" => 19000,
					"inStock" => false,
					"lservice" => "B",
				],

			"ford" =>
				[
					"model" => "FORD",
					"color" => "black",
					"year" => "2008",
					"mark" => "Focus",
					"idcat" => 2,
					"numcat" => 2,
					"park" => 111,
					"cost" => 18800,
					"inStock" => false,
					"lservice" => "E",
				],
			"toyota" =>
				[
					"model" => "TOYOTA",
					"color" => "grey",
					"year" => "2003",
					"mark" => "Prado",
					"idcat" => 2,
					"numcat" => 4,
					"park" => 222,
					"cost" => 29400,
					"inStock" => true,
					"lservice" => "A",
				]
		];
	}

        public function  showAvto($id1, $id2)
	{
            //	???
        }
}

Вид представления:

@extends('layouts.avto_temp')

@section('name')
    Наименование товара: {{ $arrAvto['model'] }}
@stop

@section('div')
    <div class="info">
        <span class="cost"> Стоимость товара: {{ $arrAvto['cost'] }}</span> <br>
        @if ($arrAvto['inStock'] == true)
            <span class="info">Наличие товара на складе: {{ 'есть в наличии' }}</span> <br> <br>
        @else <span class="info">Наличие товара на складе: {{ 'нет в наличии' }}</span> <br> <br>
        @endif
    </div>
    <div class="spec">
        Марка автомобиля: {{ $arrAvto['mark'] }} <br>
        Цвет автомобиля: {{ $arrAvto['color'] }} <br>
        Уровень сервиса автомобиля: {{ $arrAvto['lservice'] }} <br>
    </div>
@stop

Не в сети

#2 12.09.2019 10:16:25

Re: Как из простого массива двумя параметрами вывести инф. во view?

После сбора данных в контролере ты же отправляешь какие то данные во вьюшку? Как то она у тебя строится ведь.
Если нет, в первые это делаешь, тогда так -

public function  showAvto($id1, $id2){
    //	Магия тут 
     ...  
    .....
    return view('папка_в_каталоге_views.файл_в_папке_которая_в_каталоге_views', ['имя_переменной_которое_получаешь_в_файл_в_папке_которая_в_каталоге_views' => $переменная_которая_получена_в_этом_контроллере] );

}

В догонку
http://laravel.su/docs/5.2/views

Не в сети

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