В этом материале мы продолжим создавать социальную сеть на PHP и напишем первый, базовый контроллер.
В этом материале мы продолжим создавать социальную сеть на PHP и напишем первый, базовый контроллер.
Перейдем в папку app/Http/Controllers и создадим там файл HomeController.php
<?php
namespace Chatty\Http\Controllers;
class HomeController extends Controller {
public function index() {
return view('home');
}
}
?>
Как и во всех контроллерах, мы должны указывать пространство имен в начале файла. Дальше мы создаем класс, который наследует все свойства от базового контроллера, и метод, который будет выводить нам наши страницы.
Перейдем в app/Http/routes.php, удалим там все и напишем свой роутер.
<?php
Route::get('/', [
'uses' => '\Chatty\Http\Controllers\HomeController@index',
'as' => 'home',
]);
Тут все понятно, но обратите внимание на знак @. После него указывается название метода, который нам нужно использовать.
Теперь перейдем в resources/views и создадим там новый файл home.blade.php и напишем в нем:
Домашняя страница
Теперь, если вы зайдете на сайт, вы увидите эту надпись вместо ошибок, которые были раньше.
Дальше нам нужно создать базовый шаблон. В папке views создадим папку templates, в которой у нас будет файл с названием default.blade.php. В нем у нас будет содержаться базовая разметка страницы.
Писать страницы мы будем, используя Bootstrap, поэтому перейдите на официальный сайт в раздел "Download" и найдите там CDN.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Chatty</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
Теперь вернемся в файл home.blade.php, где подключим наш базовый шаблон и создадим разметку стартовой страницы.
@extends('templates.default')
@section('content')
<h3>Добро пожаловать!</h3>
<p>Вы находитесь в лучшей социальной сети, когда либо созданной!</p>
Теперь перейдем к написанию навигации. В папке templates создадим папку partials, в которой напишем файл navigation.blade.php.
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">Chatty</a>
</div>
<div class="collapse navbar-collapse">
<!-- @if (Auth::check()) -->
<ul class="nav navbar-nav">
<li><a href="#">Timeline</a></li>
<li><a href="#">Friends</a></li>
</ul>
<form class="navbar-form navbar-left" role="search" action="#">
<div class="form-group">
<input type="text" name="query" class="form-control" placeholder="Find people">
</div>
<button type="submit" class="btn btn-default">Search</button>
</form>
<!-- @endif -->
<ul class="nav navbar-nav navbar-right">
<!-- @if (Auth::check()) -->
<li><a href="#">Dayle<!-- {{ Auth::user()->getNameOrUsername() }} --></a></li>
<li><a href="#">Update profile</a></li>
<li><a href="#">Sign out</a></li>
<!-- @else -->
<li><a href="#">Sign up</a></li>
<li><a href="#">Sign in</a></li>
<!-- @endif -->
</ul>
</div>
</div>
</nav>
Здесь используется базовая Bootstrap разметка со вставками функционала(комментарии), который будет создан позже.
Теперь подключим наш файлик с навигацией в default.blade.php
...
<body>
@include('templates.partials.navigation')
...
Теперь, если вы обновите страницу, то увидите, что у нас появилась красивая навигация!
Итак, на этом пока закончим. Спасибо за внимание!
