Сделаем ссылки для
категорий и тегов.
Идем в
\resources\views\user\post.blade.php
Для категорий:
<a href="">{{
$category->name }}</a>
Для тегов:
<a
href=""><small class="pull-left"
style="margin-right: 20px; border-radius: 5px; border: 1px solid
gray; padding: 5px;">
{{ $tag->name }}
</small></a>
Создадим
маршруты для ссылок. Идем в \routes\web.php
Route::group(['namespace'
=> 'User'], function() {
Route::get('/', 'HomeController@index');
Route::get('post/{post}', 'PostController@post')->name('post');
Route::get('post/tag/{tag}', 'HomeController@tag')->name('tag');
Route::get('post/category/{category}', 'HomeController@category')->name('category');
});
Route::get('/', 'HomeController@index');
Route::get('post/{post}', 'PostController@post')->name('post');
Route::get('post/tag/{tag}', 'HomeController@tag')->name('tag');
Route::get('post/category/{category}', 'HomeController@category')->name('category');
});
Идем в
\resources\views\user\post.blade.php
Для категорий:
<a
href="{{ route('category', $category->slug) }}">{{
$category->name }}</a>
Для тегов:
<a
href="{{ route('tag',$tag->slug) }}"><small
class="pull-left" style="margin-right: 20px;
border-radius: 5px; border: 1px solid gray; padding: 5px;">
{{ $tag->name }}
</small></a>
Идем в
\app\Http\Controllers\User\HomeController.php
public
function category($slug) {
return $category = category::where('slug', $slug)->get();
}
}
return $category = category::where('slug', $slug)->get();
}
}
Нажимаем и
получаем массив:
http://blog.my/post/category/category-2
Но напишем
по-другому.
Идем в
\app\Model\user\category.php
и
\app\Model\user\tag.php
public function
getRouteKeyName() {
return 'slug';
}
}
return 'slug';
}
}
Идем в
\app\Http\Controllers\User\HomeController.php
public
function category(category $category) {
return $category;
}
return $category;
}
Теперь
нажмем: http://blog.my/post/category/category-2
У нас
возвратиться категория.
Создадим
связь между постом и категорией. Сделаем
пагинацию.
Пагинации
не может быть в связи, только после
связи. Поэтому идем в
\app\Model\user\category.php
public function
posts() {
return $this->belongsToMany('App\Model\user\post', 'category_posts')->paginate(2);
}
return $this->belongsToMany('App\Model\user\post', 'category_posts')->paginate(2);
}
Идем в
\app\Http\Controllers\User\HomeController.php
public
function category(category $category) {
$posts = $category->posts();
return view('user.blog', compact('posts'));
}
$posts = $category->posts();
return view('user.blog', compact('posts'));
}
Изменим
сортировку \app\Model\user\category.php
public
function posts() {
return $this->belongsToMany('App\Model\user\post', 'category_posts')->orderBy('created_at', 'DESC')->paginate(2);
}
return $this->belongsToMany('App\Model\user\post', 'category_posts')->orderBy('created_at', 'DESC')->paginate(2);
}
\app\Model\user\tag.php
public
function posts() {
return $this->belongsToMany('App\Model\user\post', 'post_tags')->orderBy('created_at', 'DESC')->paginate(2);
}
return $this->belongsToMany('App\Model\user\post', 'post_tags')->orderBy('created_at', 'DESC')->paginate(2);
}
Идем в
\app\Http\Controllers\User\HomeController.php
public
function tag(tag $tag) {
$posts = $tag->posts();
return view('user.blog', compact('posts'));
}
$posts = $tag->posts();
return view('user.blog', compact('posts'));
}
Страница полностью:
<?php
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\user\post;
use App\Model\user\category;
use App\Model\user\tag;
class HomeController extends Controller
{
public function index() {
$posts = post::where('status', 1)->orderBy('created_at', 'DESC')->paginate(2);
return view('user.blog', compact('posts'));
}
public function tag(tag $tag) {
$posts = $tag->posts();
return view('user.blog', compact('posts'));
}
public function category(category $category) {
$posts = $category->posts();
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;
use App\Model\user\category;
use App\Model\user\tag;
class HomeController extends Controller
{
public function index() {
$posts = post::where('status', 1)->orderBy('created_at', 'DESC')->paginate(2);
return view('user.blog', compact('posts'));
}
public function tag(tag $tag) {
$posts = $tag->posts();
return view('user.blog', compact('posts'));
}
public function category(category $category) {
$posts = $category->posts();
return view('user.blog', compact('posts'));
}
}
Комментариев нет:
Отправить комментарий