Запрос содержит null, хотя ввод был введен - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь обновить свои данные с помощью Laravel. Я могу создавать, читать, удалять данные, но почему-то не могу обновить свои данные. Я уже проверил свой контроллер, модель, маршрут и вид, но не думаю, что есть какая-то опечатка или что-то в этом роде. Он только перенаправляет на свою индексную страницу без обновления, хотя я ввел новый ввод. Сообщение об ошибке отсутствует, поэтому я проверил, в чем проблема. Итак, я проверил свою функцию обновления в своем контроллере и попытался показать запрос echo "$request->kode_kontak"; и echo $request->kode_kontak;, но он ничего не показывает, что я предполагаю, что он нулевой / пустой, но когда я echo "yes" он показал на экране «да» i проверил это, потому что я хочу знать, работает ли сама функция, поэтому проблема в том, что запрос содержит null, неудивительно, что я не могу его обновить. Почему запрос не прошел? почему это так? и как исправить?

Рут для редактирования и обновления

Route::get('contact/{contact}/edit', 'ContactController@edit')->name('contact.edit');
Route::patch('contact/{contact}','ContactController@update')->name('contact.update');

Контроллер с функцией редактирования и обновления

use Illuminate\Http\Request;
use App\Contact;
use DB;

public function edit($kode_kontak){
        $contact = DB::table('contact')->where('kode_kontak',$kode_kontak)->get();
        return view('contact.edit',['contact' => $contact]);
    }

public function update(Request $request){
        DB::table('contact')->where('kode_kontak',$request->kode_kontak)->update([
            'email' => $request->email,
            'telepon' => $request->telepon,
        ]);
        return redirect('contact');
    }

Модель

class Contact extends Model
{
    public $timestamps = false;
    
    protected $table = 'contact';

    protected $fillable = [
        'kode_kontak',
        'kode_pegawai',
        'email',
        'telepon'
        
    ];

    protected $primaryKey = 'kode_kontak';
}

Вид монтажного лезвия. php

<div id="contact">
    <h2>Edit Contact</h2>
    @foreach($contact as $p)
        <form action="{{ route('contact.update', ['kode_pegawai' => $p->kode_pegawai]) }}" method="POST">
    @csrf
    @method('patch')
        <div class="form-group">
            <label for="kode_contact" class="control-label">Kode Kontak</label>
            <input type="text" name="kode_kontak" id="kode_kontak" class="form-control" value="{{ $p->kode_kontak}}" disabled>
        </div>
        <div class="form-group">
            <label for="kode_pegawai" class="control-label">Kode Pegawai</label>
            <input type="text" name="kode_pegawai" id="kode_pegawai" class="form-control" value="{{ $p->kode_pegawai}}" disabled>
        </div>
        <div class="form-group">
            <label for="email" class="control-label">Email</label>
            <input type="text" name="email" id="email" class="form-control" value="{{ $p->email}}">
        </div>
        <div class="form-group">
            <label for="telepon" class="control-label">Telepon</label>
            <input type="text" name="telepon" id="telepon" class="form-control" value="{{ $p->telepon}}">
        </div>
        <div class="form-group">
            <input class="btn btn-primary form-control" type="submit" value="Simpan">
        </div>
    </form>
    @endforeach
</div>

Ответы [ 2 ]

1 голос
/ 09 июля 2020

$request->kode_kontak здесь $contact, $request->kode_kontak недоступно в $request, замените $contact вместо

public function update(Request $request, $contact){
   DB::table('contact')->where('kode_kontak',$contact)->update([
      'email' => $request->email,
      'telepon' => $request->telepon,
   ]);
  return redirect('contact');
}
1 голос
/ 09 июля 2020

Ваша проблема в том, что вы отключили эти входы. Отключенные входы не будут отправлены .

Если вы хотите отобразить отключенные входы, но все же ПАТЧИРОВАТЬ значения, вам нужно будет добавить скрытые входы с такими значениями, как:

        <div class="form-group">
            <label for="kode_contact" class="control-label">Kode Kontak</label>
            <input type="text" id="kode_kontak" class="form-control" value="{{ $p->kode_kontak}}" disabled>
            <input type="hidden" name="kode_kontak" value="{{ $p->kode_kontak}}">
        </div>
        <div class="form-group">
            <label for="kode_pegawai" class="control-label">Kode Pegawai</label>
            <input type="text" id="kode_pegawai" class="form-control" value="{{ $p->kode_pegawai}}" disabled>
            <input type="hidden" name="kode_pegawai" value="{{ $p->kode_pegawai}}">
        </div>

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...