значение БД не добавляется

#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 . Если ошибки все еще не отображаются, я понятия не имею.