Блог программиста

Изучаем и разрабатываем что-то новое, делимся опытом.

Laravel начало работы

Заходим в наш проект blog и откроем файл resources/views/welcome.blade.php, найдём, практически, в конце файла такие строчки:

<div class="title m-b-md">
	Laravel
</div>

Поменяем слово Laravel на My blog.

Отлично, уже начинаем работать с Laravel!

Судя по названиям папок, здесь лежат ресурсы проекта resources, а конкретно, его вьюшки views.

Маршруты (routes)

Перейдём в папку routes (маршрутизация) от начала проекта и откроем файл web.php:

Route::get('/', function () {
    return view('welcome');
});

Тааак, начинаю понимать: если мы в браузере указываем корневой URL '/', то открывается вьюшка welcome, то есть файл welcome.blade.php, который мы рассматривали выше!

Давайте ниже в этом файле допишем:

Route::get('hello-world', function () {
    return '<h1>Hello, world!</h1>';
});

Если не использовать view, так даже понятнее - мы просто выводим на страничку текстовую строку.

Views - представления или макеты

Чуть выше я назвал views вьюшками. Это точнее назвать представлениями, а ещё точнее - макетами.

Давайте создадим маршрут следующего содержания:

Route::get('info', function () {
    return view('info');
});

А теперь в папке resources/views файл info.blade.php:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
</head>
<body>
    <h1>Информация о клиенте</h1>
</body>
</html>

При переходе на страничку http://127.0.0.1:8000/info, увидим слово "Информация о клиенте".

На самом деле, view() - это глобальная вспомогательная функция, которая из макета генерирует строку символов. Мы можем передать в неё параметры в виде массива данных, которые будут доступны в представлении.

В маршруте пропишем:

return view('info', ['name' => 'Natalia']);

А в макете:

  • name: <?= $name ?>

Отлично! Параметр передаётся!

Вместо PHP-шной записи можно использовать более красивые фигурные скобочки {{ }}. Проверяем:

return view('info', ['name' => 'Natalia', 'age' => '25']);

и в макете:

  • name: <?= $name ?>
  • age: {{ $age }}

Циклы в Laravel

Добавим ещё один параметр в массив передаваеммых данных! Когда данных больше 2-х, то их лучше выводить с помощью цикла. Поэтому информацию будем передавать таким образом:

$info = ['name' => 'Natalia', 'age' => '25', 'sex' => 'yes'];
return view('info', compact("info"));

<ul>
    <?php foreach($info as $key => $item) { ?>
        <li><b><?= $key ?>:</b> {{ $item }}</li>
    <?php } ?>
</ul>

А можно ли также красиво избавится в макете от кода на PHP? Да, конечно:

@foreach($info as $key => $item) 
<li><b>{{ $key }}:</b> {{ $item }}</li>
@endforeach

Шаблонизатор Blade

Каким образом мы можем использовать фигурные скобочки {{ }} или команды типа @foreach ... @endforeach?

Это отрабатывает Blade - простой, но мощный шаблонизатор, входящий в состав Laravel. Он не ограничивает использование конструкций PHP внутри шаблонов.

Как работает Blade? Шаблоны компилируются в PHP-код и кэшируются фреймворком Laravel. Поэтому Blade не вносит дополнительных тормозов в работу сайта.

Как мы уже могли заметить, файлы шаблонов Blade оканчиваются на .blade.php и обычно находятся в папке resources/views.

Пока всё. Продолжение следует...


  • - 2019-01-22 12:44:54

    огонёк!

Отправить комментарий
Наши проекты
Cj - язык программирования (C++ & Javascript)
Новый язык программирования, для разработки веб, мобайл, десктоп-приложений, игр... подробнее...
Контакты
vk.com/sitev_ru
Skype: sitev.ru
E-mail: mike@sitev.ru
github.com/sitev

Рейтинг@Mail.ru

Besucherzahler
счетчик посещений