Я использую одно и то же представление для отображения одного сообщения и случайного сообщения
маршруты
Route::get('posts/{id}', 'PostsController@show')->name('posts.show');
Route::get('get-random-post', 'PostsController@getRandomPost');
методы в PostsController
public function show($id) {
$post = Post::findOrFail($id);
return view('posts.show', compact('post'));
}
public function getRandomPost() {
$post = Post::inRandomOrder()
->where('is_published', 1)->first();
return redirect()->route('posts.show', ["id" => $post->id]);
}
но теперь мне нужно добавить небольшую разницу между двумя представлениями. Как я могу это сделать?
UPD
Я добавил переменную $randomPost в методы в контроллере
public function show($id) {
$randomPost = false;
$post = Post::findOrFail($id);
return view('posts.show', compact('post', 'randomPost'));
}
public function getRandomPost() {
$randomPost = true;
$post = Post::inRandomOrder()
->where('is_published', 1)->first();
return redirect()->route('posts.show', ["id" => $post->id]);
}
и добавил код ниже, чтобы показать представление
@if($randomPost)
some text
@endif
но я не знаю, как передать переменную из getRandomPost() для просмотра?
UPD2
В результате я использовал сеанс, он работает, но я в этом не уверен
метод
public function getRandomPost() {
$post = Post::inRandomOrder()
->where('is_published', 1)->first();
session()->flash('random_post', 'ok');
return redirect()->route('posts.show', ["id" => $post->id]);
}
просмотр
@extends('layouts.app')
@section('content')
Home page
#{{$post->id}}
{!! nl2br(e($post->text)) !!}
@stop
Подробнее здесь: https://stackoverflow.com/questions/425 ... ween-views