Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Проблема решилась, путь отказа от Route::controller
С версии laravel 5.1 он устарел.
если поместить Route::controller('/akp', 'AkpController'); в Route::group(['middleware' => ['web']], function () {
то получаю
TokenMismatchException in VerifyCsrfToken.php line 67:
Настраиваю валидацию
use Validator;
use App\Http\Requests;
use Illuminate\Http\Request;
use Illuminate\Session\Middleware;
class AkpController extends Controller {
public function postAdd(Request $request) {
$validator = Validator::make($request->all(), [
'added_on' => 'required|unique:added_on',
]);
if ($validator->fails()) {
return view('index')
->withErrors($validator);
}
}
но при проверки уникальности валидор в базу akp.added_on вместо указанной в eloquent
Подскажите, каким способом тогда лучше сделать?
Мне нужно сделать редирект из котроллера на '/' с сообщение об удачном действие.
Делаю
Routes
Route::controller('/akp', 'AkpController');
Route::group(['middleware' => ['web']], function () {
Route::any('/', ['as' => 'main', function() {
//session()->flash('status', 'default');
return view('index');
}]);
});
index
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
AkpController
session()->flash('status', 'default');
return redirect()->route('main')->with('status', 'default');
И всё равно флэш при редиректе не передается. Зато если раскоментить передачу флэш из роута, проблем нет.
Так же отлично передается аргумент с помощь.
return redirect()->route('main', ['status' => 1]);
Route::any('/', ['as' => 'main', function(){
//session('status');
return view('index');
}]);
//Route::get('/akp', 'AkpController@index');
Route::controller('/akp', 'AkpController');
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| This route group applies the "web" middleware group to every route
| it contains. The "web" middleware group is defined in your HTTP
| kernel and includes session state, CSRF protection, and more.
|
*/
Route::group(['middleware' => ['web']], function () {
//
});
Еще учитывайте, что flash данные хранятся ровно ОДИН запрос. Если сделать 2 редиректа - то уже не будет, к примеру.
Так я делаю один редирект из контроллера с переменным session в роуте который выводит шаблон?
Тогда получается передавать session можно только напрямую из роута?
А Вы как получаете статус - session()->get('status')? Это же не будет просто $status, как остальные переменные
Еще учитывайте, что flash данные хранятся ровно ОДИН запрос. Если сделать 2 редиректа - то уже не будет, к примеру.
Пробую так
public function postAdd() {
session()->flash('status', 'default');
return redirect()->route('main');;
}
а в шаблоне main
Получаю как в документации
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
Хочу увидеть session status в шаблона index. А передается только параметр save
Laravel Framework version 5.2.5
Вызываю из котроллера:
public function postAdd() {
session()->flash('status', 'default');
return redirect()->route('main', ['save' => 'ok']);;
}
Не работает flash в шаблоне.
А если тоже самое из роута:
Route::get('/', ['as' => 'main', function(){
session()->flash('status', 'default');
return view('index');
}]);
То Flash успешно передается в шаблон.
Вопрос снимается, тупанул.
Есть массив $category, необходимо в блайде вывести данные в список <li> и выделить определенный подсветкой, но как добавить к нему класс?
Ниже приведет пример, но в примере у меня дублируется запись списка.
@forelse ($category as $category)
@if ($category->link == $link_name->link)
<li class="navleft-item"><a class="current" href="{!!$category->link!!}">{!!$category->name!!}</a></li>
@endif
<li class="navleft-item"><a href="{!!$category->link!!}">{!!$category->name!!}</a></li>
@endforeach