Установим через cdn
полную версию текстового
редактора ckeditor.
Выберем
CKEditor CDN.
То есть:
<script src="//cdn.ckeditor.com/4.7.2/full/ckeditor.js"></script>
Заменим в
edit.blade.php и
post.blade.php ссылку
<script src="{{
asset('admin/bower_components/ckeditor/ckeditor.js') }}"></script>
на новую
<script src="{{
asset('//cdn.ckeditor.com/4.7.2/full/ckeditor.js') }}"></script>
Начнем
менять пользовательскую часть сайта.
Идем в
\resources\views\user\post.blade.php
Выведем текст
по адресу: http://blog.my/post
Откроем маршрут,
чтобы вывести пост со слагом в адресной
строке:
\routes\web.php
Route::group(['namespace'
=> 'User'], function() {
Route::get('/', 'HomeController@index');
Route::get('post/{post}', 'PostController@post')->name('post');
});
Route::get('/', 'HomeController@index');
Route::get('post/{post}', 'PostController@post')->name('post');
});
Идем в модель
постов по адресу: \app\Model\user\post.php и создадим
там функцию:
public
function getRouteKeyName() {
return 'slug';
}
}
return 'slug';
}
}
Откроем
контроллер \app\Http\Controllers\User\PostController.php
<?php
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\user\post;
class PostController extends Controller
{
// используем модель post
public function post(post $post) {
return $post;
return view('user.post');
}
}
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\user\post;
class PostController extends Controller
{
// используем модель post
public function post(post $post) {
return $post;
return view('user.post');
}
}
Если
мы наберем в адресной строке
http://blog.my/post/bitfumes-post
У нас откроется данный пост.
Перепишем
функцию, передадим слаг в шаблон.
//
используем модель post
public function post(post $post) {
return view('user.post', compact('post'));
}
public function post(post $post) {
return view('user.post', compact('post'));
}
Идем
в \resources\views\user\post.blade.php
@extends('user/app')
@section('bg-img',
asset('user/img/post-bg.jpg'))
@section('title',
'Bitfumes Post')
@section('sub-heading',
'Learn together and grow together')
@section('main-content')
<!-- Post Content -->
<article>
<div class="container">
<div class="row">
<div class="col-lg-8 col-md-10 mx-auto">
{{ $post->body }}
</div>
</div>
</div>
</article>
<hr>
@endsection
У нас выводится
текст с тегами, как они есть.
Для этого нам
не нужно экранировать вывод.
Если вы не
хотите экранировать данные, используйте
такой синтаксис:
Hello, {!! $name !!}.
<div
class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offet-1">
{!! htmlspecialchars_decode($post->body) !!}
</div>
Выведем
заголовок и остальное.
@extends('user/app')
@section('bg-img',
asset('user/img/post-bg.jpg'))
@section('title',
$post->title)
@section('sub-heading',
$post->subtitle)
@section('main-content')
<!-- Post Content -->
<article>
<div class="container">
<div class="row">
<div class="col-lg-12">
<small>Created at {{
$post->created_at->diffForHumans() }}</small>
@foreach ($post->categories as $category)
<small class="pull-right"
style="margin-right: 20px;">
{{ $category->name }}
</small>
@endforeach
{!! htmlspecialchars_decode($post->body) !!}
<h3>Tag Clouds</h3>
@foreach ($post->tags as $tag)
<small class="pull-left"
style="margin-right: 20px; border-radius: 5px; border: 1px solid
gray; padding: 5px;">
{{ $tag->name }}
</small>
@endforeach
</div>
</div>
</div>
</article>
<hr>
@endsection
Идем в
\routes\web.php
Route::group(['namespace'
=> 'User'], function() {
Route::get('/', 'HomeController@index');
Route::get('post/{post?}', 'PostController@post')->name('post');
});
Route::get('/', 'HomeController@index');
Route::get('post/{post?}', 'PostController@post')->name('post');
});
? означает, что
post не обязателен.
Теперь
мы можем открыть главную страницу:
http://blog.my/
Откроем
контроллер \app\Http\Controllers\User\HomeController.php
<?php
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\user\post;
class HomeController extends Controller
{
public function index() {
$posts = post::where('status', 1)->get();
return view('user.blog', compact('posts'));
}
}
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\user\post;
class HomeController extends Controller
{
public function index() {
$posts = post::where('status', 1)->get();
return view('user.blog', compact('posts'));
}
}
Идем
в \resources\views\user\blog.blade.php
@extends('user/app')
@section('bg-img',
asset('user/img/home-bg.jpg'))
@section('title',
'Bitfumes blog')
@section('sub-heading',
'Learn together and grow together')
@section('main-content')
<!-- Main Content -->
<div class="container">
<div class="row">
<div class="col-lg-8 col-md-10 mx-auto">
<div class="post-preview">
@foreach ($posts as $post)
<a href="{{ route('post', $post->slug) }}">
<h2 class="post-title">
{{ $post->title }}
</h2>
<h3 class="post-subtitle">
{{ $post->subtitle }}
</h3>
</a>
<p class="post-meta">Posted by
<a href="#">Start Bootstrap</a>
{{ $post->created_at->diffForHumans() }}</p>
</div>
@endforeach
<hr>
<!-- Pager -->
<div class="clearfix">
<a class="btn btn-secondary float-right"
href="#">Older Posts →</a>
</div>
</div>
</div>
</div>
<hr>
@endsection
Идем в
\routes\web.php и удалим знак вопроса
Route::group(['namespace'
=> 'User'], function() {
Route::get('/', 'HomeController@index');
Route::get('post/{post}', 'PostController@post')->name('post');
});
Route::get('/', 'HomeController@index');
Route::get('post/{post}', 'PostController@post')->name('post');
});
Комментариев нет:
Отправить комментарий