CRUD - Создать не работает - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь использовать кнопку Create, чтобы добавить элемент, но восстановление не работает.У меня нет сообщения об ошибке ... Однако моя кнопка Delete работает хорошо.

В моем AdminController у меня есть это:

class AdminController extends Controller
{
    public function getHome(){
        $devis = Devis::all()->sortByDesc("created_at");
        return view('admin.devis.home', compact('devis'));
    }

    public function destroy(Devis $devis)
    {
        $devis->delete();
        return redirect('/admin');
    }

    public function create()
    {
        return view('admin.devis.create');

    }

    public function store(Request $request)
    {
        $request->validate([
                'firstname' => 'required',
                'lastename' => 'required'
        ]);
        Devis::create($request->all());
        return redirect()->route('admin.devis.home')
                    ->with('success', 'un étudiant a été crée');
    }

}

Я думаю, что контроллер правильный.

В моей папке View => Admin => Devis У меня есть 2 файла:

Home.blade.php

@section('content')
  <div class="px-content">
    <div class="page-header">
      <div class="row">
        <div class="col-md-4 text-xs-center text-md-left text-nowrap">
          <h1><i class="px-nav-icon ion-android-apps"></i>Listing </h1>
        </div>
        <hr class="page-wide-block visible-xs visible-sm">
        <!-- Spacer -->
        <div class="m-b-2 visible-xs visible-sm clearfix"></div>
      </div>
    </div>
    <div class="row">
      <div class="panel">
        <div class="panel-body">
          <div class="table-responsive">
            <table class="table">
              <thead>
                <tr>
                  <th>Firstname</th>
                  <th>Lastename</th>
                  <a class="btn btn-sm btn-success" href="{{ route('devis.create') }}">Create</a>
                </tr>
              </thead>
              @foreach($devis as $item)
                <tr>
                   <td> {{$item->firstname}} </td>
                   <td> {{$item->lastname}} </td>
                   <td> <a href="/devis/delete/{{$item->id}}" class="btn btn-danger"><span class="left ion-close"></span></a></td>
                </tr>
              @endforeach
            </table>
          </div>
        </div>
      </div>
    </div>
  </div>
@endsection

И create.blade.php

@section('content')
  <div class="px-content">
    <div class="page-header">
      <div class="row">
        <div class="col-md-4 text-xs-center text-md-left text-nowrap">
          <h1><i class="px-nav-icon ion-android-apps"></i>Devis</h1>
        </div>
        <hr class="page-wide-block visible-xs visible-sm">
        <!-- Spacer -->
        <div class="m-b-2 visible-xs visible-sm clearfix"></div>
      </div>
    </div>
    <div class="row">
      <div class="panel">
        <div class="panel-body">
          <div class="table-responsive">
            <form class="panel-body" action="/devis" method="POST">
              @csrf
              <fieldset class="form-group">
                <label for="form-group-input-1">FirstName</label>
                <input type="text" name="firstname" class="form-control" id="form-group-input-1">
              </fieldset>
              <fieldset class="form-group">
                <label for="form-group-input-1">Lastname</label>
                <input type="text" name="lastname" class="form-control" id="form-group-input-1" >
              </fieldset>

              <button type="submit" class="btn btn-primary pull-right">Create</button>
            </form>
          </div>
        </div>
      </div>
    </div>
  </div>
@endsection

В папке маршрутов у меня есть это

route::resource('devis','AdminController');
Route::post('/devis', 'AdminController@store');
Route::get('/devis/delete/{devis}', 'AdminController@destroy');

Iспасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

На самом деле у вас есть проблема с именованием, когда вы проверяете его с помощью функции проверки, как показано ниже: это должно быть

$request->validate([
'firstname' => 'required',
'lastname' => 'required'
]);

вместо:

 $request->validate([
'firstname' => 'required',
'lastename' => 'required'
 ]);

, который вы используете lastename вместо lastname.Метод валидатора должен иметь правильные индексы, иначе он не будет сохранен в базе данных.надеюсь, это поможет.

0 голосов
/ 28 октября 2018

Хорошо, во-первых, иногда вы используете фамилию , иногда вы используете lastename , и валидатор не распознает, потому что это разные имена.

Во-вторых, вы не видите никаких ошибок, потому что вы не реализовали flash_message для просмотра ошибок внутри сеанса.

 $request->validate([
    'firstname' => 'required',
    'lastename' => 'required'
 ]);

 <input type="text" name="lastname" class="form-control" id="form-group-input-1" >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...