Найти в Дзене
Full Stack

Создание блога на Laravel 5.7 за 15 минут в 2019 году

Оглавление

Скачайте локальный сервер, например, Open Server и установите его на свой ПК. Теперь скачайте какой-нибудь текстовый редактор, например Sublime Text 3 и установите его на свой персональный компьютер.

Важно! Данную статью я буду писать на примере использования Open Server, поэтому если у вас другой локальный сервер, то я советую установить вам именно его, ибо мне лень объяснять вам о том, что такое Homestead, PHP, Composer, JSON, СУБД и т. д.
Создание простого блога и к тому же без админки на Laravel 5.7 за 15 минут в 2019 году.
Создание простого блога и к тому же без админки на Laravel 5.7 за 15 минут в 2019 году.

Приступаем к работе

Нажимаем на флажок Open Server, запускаем локальный сервер и переходим в PhpMyAdmin. Создаем базу данных (в моем случае база данных будет называться «laravelbd») и открываем консоль нашего локального сервера, в которую пишем следующие команды:

$ cd domains
$ composer create-project --prefer-dist laravel/laravel laravel.loc

Теперь переходим в папку domains -> laravel.loc и находим там файл .env, который открываем с помощью нашего текстового редактора. Потом находим и редактируем следующие строчки:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravelbd
DB_USERNAME=root
DB_PASSWORD=

Все, мы создали наше веб-приложение и подключили его к базе данных. Ну, а теперь создайте внутри вашего приложения файл .htaccess, в который скопируйте и вставьте следующий код:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Этот код убирает /public в URL на Laravel. Теперь нажмите на флажок Open Server, наведите курсор мышки на раздел «Мои сайты» и перейдите на свой сайт для того, чтобы на него посмотреть.

Теперь снова открываем консоль и вводим следующие команды:

$ php artisan make:auth
$ php artisan migrate
$ php artisan make:model Post -mc
$ php artisan vendor:publish --tag=laravel-pagination

Переходим в routes -> web.php и пишем туда следующий код:

Route::get('/', 'PostsController@index')->name('home');
Route::get('/article/{id}.html', 'PostsController@article');
Route::get('/category', 'CategoryController@category');

Теперь переходим в миграцию create_posts_table и заполняем ее следующим образом:

$table->increments('id');
$table->string('title');
$table->text('description'); //Вы можете указать другой тип данных.
$table->text('content');
$table->timestamps();

Далее переходи в наш недавно созданный контроллер app -> Http -> Controllers -> PostsController.php и вставляем в него следующие содержимое:

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Post;
class PostsController extends Controller
{
public function index() {
$posts = DB::table('posts')->orderBy('id', 'desc')->paginate(5);
return view('posts.index', ['posts' => $posts]);
}
public function article($id) {
$posts = Post::find($id);
return view('posts.article', ['posts' => $posts]);
}
}

И снова вводим в консоль уже известную нам команду:

$ php artisan migrate

Все, далее переходим в PhpMyAdmin и заполняем таблицу Posts. Напишите туда не меньше 6 постов для того, чтобы увидеть пагинацию. Ну и для того, чтобы изменить число отображения постов на одной странице - отредактируйте контроллер Posts: paginate(5).

С back-end'ом мы закончили, поэтому теперь переходим выводу постов и страниц в laravel 5.7.

Создайте папку posts внутри папок resources-> views, а также файл layout.blade.php. Внутри папки posts создайте 2 файла: article.blade.php и index.blade.php.

Далее выводите данные из таблицы циклом foreach. К сожалению словами я не смогу объяснить вам то, что такое шаблонизатор Babel.

В заключение подведем итоги

Я не знаю зачем я написал эту статью, но все же, если у вас возникнут какие-то вопросы по Laravel, да и по PHP в целом, то пишите их в комментария. Я постараюсь ответить на все ваши вопросы.

-2

Если вам эта тема зайдет, то я напишу для вас еще кучу материала на тему создания сайтов как на PHP, так и на JavaScript (Node.js, React.js, Koa,js).