Используемые
методы:
with - вернуть
переданный объект. Полезно при сцеплении
методов в PHP 5.3.x.
asset - сгенерировать
URL ко внешнему ресурсу (изображению и
пр.).
$url =
asset('img/photo.jpg');
Главная
точка входа на сайт находится в папке
public в файле index.php
Запрос
пользователя передается маршрутизатору.
Маршрутизатор состоит из отдельных
маршрутов для конкретных запросов.
routes/web.php
- маршрутизатор для обработки web-запросов.
Route::get('/',
function () {
return view('welcome');
});
return view('welcome');
});
Как формируется
маршрут?
Идет
обращение к фасаду Route.
Фасад -
класс-посредник, который предоставляет
удобный и быстрый доступ к определенному
другому классу, который описан в
простанстве имен и в структуре, которого
содержится необходимый нам функционал.
Здесь маршрут
формируется, используя вызов метода
get.
Get используется
для создания маршрутов, которые будут
обрабатывать запросы типа get.
Например,
http://minilaravel.loc/add
В
Laravel под запросом понимается вс то, что
следует после домена: add или page/show
Маршруты
формируются под определенный запрос
или группу запросов.
Запрос может
состоять из постоянной части и части,
которая будет меняться: page/show/10
Это число -
переменная или параметр запроса.
При формировании
маршрута в качестве первого параметра
при вызове метода get передается шаблон
запроса, для которого формируется
данный маршрут.
У нас в качестве
шаблона передается обратный слеш.
Вторым аргументом
передается функция, код которой
будет выполнен, если данный маршрут
будет выбран для обработки текущего
запроса.
В коде данной
функции возвращается вызов функции
view. View возвращает отработку кокретного
вида.
Интересующий
вид передается первым аргументом при
вызове функции-хелпера view.
\resources\views\welcome.blade.php
При обращении
к конкретному виду мы указываем только
имя файла без расширения blade.php
Сформируем
собственный маршрут.
Route::get('page',
function() {
return 'Hello world!';
});
return 'Hello world!';
});
Набираем:
http://minilaravel.loc/page
Получаем: Hello
world!
Не всегда удобно
использовать функции в маршрутизаторе.
Мы можем указать
имя метода контролера, который
обработает текущий запрос.
Route::get('page',
'IndexController@index');
Синтаксис: имя
контроллера, имя класса контроллера,
разделитель @ и имя метода.
Запрос попадает
в контроллер, а потом обращается к виду.
Здесь располагаются
контроллеры: \app\Http\Controllers
Здесь мы можем
создать контроллер вручную или через
консоль.
Для этого:
Переходим в
папку с проектом: w:\domains\minilaravel.loc
Обращаемся к
консоли фреймворка: php artisan make:controller
IndexController
Контроллеры
описываются в пространстве имен
App\Http\Controllers
use
Illuminate\Http\Request; // доступ к классу Request,
который представляет абстракцию
отправляемого запроса пользователем
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index() {
return 'Hello world!';
}
}
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index() {
return 'Hello world!';
}
}
Перепишем
функцию:
public function index()
{
return view('page');
}
return view('page');
}
В каталоге
\resources\views создаем page.blade.php
Расширение blade
означает, что файл будет обрабатываться
шаблонизатором blade.
Передадим в вид
еще и значения какой-либо переменной.
В
App\Http\Controllers\Index.Controller.php
class IndexController
extends Controller
{
public function index() {
$message = 'Hello world!';
return view('page')->with('message', $message); // with() используется для добавления переменных в вид
}
}
{
public function index() {
$message = 'Hello world!';
return view('page')->with('message', $message); // with() используется для добавления переменных в вид
}
}
В \resources\views\
page.blade.php
<h1>{{$message}}</h1>
Но
загрузим в вид шаблон страницы, а в папку
\public\css добавим стили.
Подключим
стили:
<link
href="{{ asset('css/bootstrap.min.css') }}"
rel="stylesheet">
<link href="{{ asset('css/jumbotron.css') }}"
rel="stylesheet">
asset
– функция-хелпер для
формирования пути к публичной директории
нашего проекта.
Сформируем
заголовок и текст:
public
function index() {
$header = 'Hello world!';
$message = 'This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.';
return view('page')->with(['message' => $message,'header' => $header]);
}
$header = 'Hello world!';
$message = 'This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.';
return view('page')->with(['message' => $message,'header' => $header]);
}
В \resources\views\
page.blade.php
<h1>{{$header}}</h1>
<p>{{$message}}</p>
Сделаем
страницу pages основной при
загрузке:
В routes/web.php
Route::get('/',
'IndexController@index');
Можете мне объяснить почему у меня пишет
ОтветитьУдалитьObject not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. и т.д.
Хотя я сделал так как Вы учите! Где тут подводные камни?