Установим через 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');
});
 
Комментариев нет:
Отправить комментарий