#php #html #css #laravel
#php #HTML #css #laravel
Вопрос:
как только я отправляю, он возвращается обратно на мою страницу принятия, но не сохраняет значения в функции хранения контроллера БД
function store(){
$this->validate($request,[
'name'=>'required',
'ppl'=>'required',
'event' => 'required'
]);
$user= new ppl();
$user->name=$request->name;
$user->ppl=$request->ppl;
$user->event=$request->event;
$user->save();
return back();
}
режим -ppl
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class ppl extends Model
{
use HasFactory;
protected $fillable = [
'name','ppl','event' ];
}
db-ppls, у которого есть имя, ppl, событие
public function up()
{
Schema::create('ppls', function (Blueprint $table) {
$table->id();
$table->String('name');
$table->integer('ppl');
$table->String('event');
$table->timestamps();
});
}
blade-accept — он содержит форму и «Route::post(‘/ accept’, [DetailController::class,’store’]);
» — это путь маршрута
@extends('master')
@section('content')
<div class="login-wrapper">
<form action="accept" method="POST" class="form" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control form-control-lg" id="name" name="name" placeholder="Enter name">
</div>
<div class="form-group">
<label for="ppl">No of people:</label>
<input type="number" class="form-control form-control-lg" id="ppl"name="ppl" placeholder="no of people" step="1">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="event" name="event">
@if(!empty($users))
<label class="form-check-label" for="event">{{$users[0]->ename}}</label>
@endIf
</div>
<button type="submit" class="btn btn-primary" style:"text-align:centre;">Submit</button>
</form>
</div>
@endsection
Комментарии:
1. В вашем
store
методе контроллера нет параметра с именем $request .2. даже тогда оно не сохраняется @QuynhXuanNguyen
3. Ваш флажок не имеет определенного значения.
4. Вы уверены? $request не передается
store
методу, означает, что он похож на null, и ваш запрос всегда не соответствует правилам проверки. Кстати, пожалуйста, распечатайте сообщения об ошибках, чтобы убедиться, что запрос проходит правила проверки.5. Пожалуйста, создайте репозиторий github для воспроизведения вашей проблемы и свяжите его здесь!
Ответ №1:
Запрос может не проходить правила проверки, но ошибки не отображаются из-за повторяющегося сеанса. Пожалуйста, удалите или прокомментируйте IlluminateSessionMiddlewareStartSession::class
внутри $middlewareGroups
AppHttpKernel.php
.
После выполнения этого вы увидите ошибки проверки при отправке формы. Остальная работа за вами.
Вы уже определили
StartSession
класс внутри$middleware
для использованияAppHttpMiddlewareUserAuth
? Я думаю.
<?php
namespace AppHttp;
use IlluminateFoundationHttpKernel as HttpKernel;
class Kernel extends HttpKernel
{
// more line...
protected $middlewareGroups = [
'web' => [
AppHttpMiddlewareEncryptCookies::class,
IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
// Remove or comment the line below
// IlluminateSessionMiddlewareStartSession::class,
// IlluminateSessionMiddlewareAuthenticateSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class,
AppHttpMiddlewareVerifyCsrfToken::class,
IlluminateRoutingMiddlewareSubstituteBindings::class,
],
'api' => [
'throttle:api',
IlluminateRoutingMiddlewareSubstituteBindings::class,
],
];
// more line...
}
Комментарии:
1. даже после комментирования строки я не получаю никаких ошибок -@Quynh Xuan Nguyen
2. Пожалуйста, не вставляйте код в комментарии! Это не имеет смысла. Я клонирую ваш репозиторий, просто делайте так, как я описал в своем ответе, и отображаются ошибки. Вы можете увидеть изображение в MR.
3. не могли бы вы, пожалуйста, объяснить мне, как вы получили эти сообщения об ошибках и как использовать dd (); пожалуйста, я начинаю кодировать его недавно. пожалуйста, помогите!! @Quynh Сюан Нгуен.
4. Вы смотрели изменения файлов в моем PR на github? Я просто комментирую
StartSession:class
в промежуточном программном обеспечении «web», затем пытаюсь отправить форму.5. Я не могу угадать ваши проблемы. Вы должны попробовать установить и запустить код на github.com/seriquynh/studio/tree/fix_session_starts_twice . Если ошибки все еще не отображаются, я понятия не имею.