#php #laravel #controller #laravel-7 #laravel-8
#php #laravel #контроллер #laravel-7 #laravel-8
Вопрос:
У меня проблема с добавлением данных или созданием данных в моем проекте laravel, как ее решить? я действительно смущен этим
это контроллер
namespace AppHttpControllers;
use AppModelsDaftarPelanggan;
use IlluminateHttpRequest;
use IlluminateHttpResponse;
use IlluminateValidationRule;
use IlluminateSupportFacadesValidator;
use IlluminateSupportFacadesDB;
use Alert;
class DaftarPelangganController extends Controller
{
public function validator(Request $request)
{
return Validator::make($data, [
'nama_pelanggan' => ['required', 'string', 'max:255'],
'alamat' => ['required', 'string', 'max:255'],
'no_telp' => ['required', 'string', 'max:255'],
]);
}
public function create(Request $request)
{
return DaftarPelanggan::create([
'nama_pelanggan' => $data['addNamaPelanggan'],
'alamat' => $data['addAlamat'],
'no_telp' => $data['addNoTelp'],
'email' => $data['addEmail'],
'poin' => $data['addPOin'],
'status_member' => $data['addKategori'],
]);
return redirect()->back();
}
}
это маршрутизация
Route::get('daftar_pelanggan/create','AppHttpControllersDaftarPelangganController@create')->name('daftar_pelanggan.create');
это кнопка blade
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#editModal">
<i class="fa fa-edit"></i></button>
и это модальная форма
<!-- Modal Add -->
<div class="modal fade" id="addModal" tabindex="-2" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title mb-0" id="addModalLabel">Tambah Data Pelanggan</h5>
</div>
<div class="modal-body">
<!-- Card body -->
<form role="form" action="{{ route('daftar_pelanggan.create') }}" method="POST" enctype="multipart/form-data">
@csrf
<!-- Input groups with icon -->
<div class="form-group row">
<label for="addNamaPelanggan" class="col-md-2 col-form-label form-control-label">Nama</label>
<div class="col-md-10">
<input class="form-control" type="nama" placeholder="Nama Lengkap" id="addNamaPelanggan" name="addNamaPelanggan">
</div>
</div>
<div class="form-group row">
<label for="addAlamat" class="col-md-2 col-form-label form-control-label">Alamat</label>
<div class="col-md-10">
<input class="form-control" type="alamat" placeholder="Jatibarang" id="addAlamat" name="addAlamat">
</div>
</div>
<div class="form-group row">
<label for="addNoTelp" class="col-md-2 col-form-label form-control-label">No.Telp</label>
<div class="col-md-10">
<input class="form-control" type="notelp" placeholder="083XXXXXXXXX" id="addNoTelp" name="addNoTelp">
</div>
</div>
<div class="form-group row">
<label for="addEmail" class="col-md-2 col-form-label form-control-label">Email</label>
<div class="col-md-10">
<input type="email" class="form-control" id="addEmail" placeholder="name@example.com" name="addEmail">
</div>
</div>
<div class="form-group row">
<div class="col-md-6">
<div class="form-group">
<label class="form-control-label" for="addPoin">POIN</label>
<input type="text" class="form-control" id="addPoin" placeholder="0" name="addPoin">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="form-control-label" for="addKategori">Kategori</label>
<select class="form-control" id="addKategori" name="addKategori">
<option value="silver">Silver</option>
<option value="gold">Gold</option>
<option value="diamond">Diamond</option>
</select>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Tambah Data</button>
</div>
</div>
</div>
</div>
и это модель
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class DaftarPelanggan extends Model
{
//use HasFactory, Notifiable;
protected $table = "daftar_pelanggans";
protected $primaryKey = 'id';
protected $fillable = [
'nama_pelanggan',
'alamat',
'no_telp',
'email',
'poin',
'status_member',
];
}
Пожалуйста, помогите мне, спасибо
[модалы формируют мой проект] [1]
[1]: https://i.stack.imgur.com/vnSyI.png
Комментарии:
1. Добро пожаловать в SO… какую ошибку вы получили?
2. кнопка ввода данных не работает, а контроллер создания данных не работает, что не так с моим кодом?
3. вы пробовали отлаживать?
4. да, у меня есть, я думаю, что запрос insert не выполняется
5. «Я думаю» довольно широкое — что вы пытались отладить проблему?
Ответ №1:
В дополнение к вашим входным данным, ваша submit
кнопка должна быть внутри тегов вашей формы.
Комментарии:
1. Я ответил ему по-своему @RushikeshGanesh , и, похоже, вы отредактировали свой собственный ответ… так что, по сути, это не я скопировал ВАШ ответ. хорошего дня (ps: да, я тот 1, кто поддержал ваш ответ).
Ответ №2:
Кнопка находится вне тега формы, вы должны попробовать ее внутри тега формы
Комментарии:
1. спасибо, что он работает, но я меняю код вашего контроллера
2. В чем была проблема и как ваш код помогает ее решить?
3. @showdev кнопка находится не внутри формы, вы можете увидеть предыдущее обсуждение, где я точно вижу проблему, и этот ответ действительно работает для него
4. @showdev внимательно прочитайте обсуждение, прежде чем давать какие-либо комментарии
5. Какое обсуждение? На мой взгляд, наиболее полезные ответы включают в себя самодостаточное объяснение, а не просто «попробуйте это».
Ответ №3:
Вы используете маршрут с методом ‘get’ для доступа к контроллеру
Route::get(‘daftar_pelanggan/create’,’AppHttpControllersDaftarPelangganController@create’)->name(‘daftar_pelanggan.create’);
измените на ‘post’ следующим образом
Route::post(‘daftar_pelanggan/create’,’AppHttpControllersDaftarPelangganController@create’)->name(‘daftar_pelanggan.create’);
Комментарии:
1. да, хорошей практикой является отправка формы с использованием метода POST вместо GET, но это не точная проблема. Но все же хороший ответ.