在 Laravel 上使用模态更新数据

Update Data Using Modal on Laravel

我想使用视图模式在 laravel 上创建编辑数据。 但我不知道如何在我的编辑表单上获取一个数据。

我像在另一个页面上编辑数据一样构建控制器(不使用模式)

 public function index()
{
    $ipsrs = DB::table('ipsrs')->pluck('nama_bagian','id');
    $belum_kerjakan = Aduan::with('users')->where('status','Belum Dikerjakan')->get();
    $dalam_proses   = Aduan::with('users')->where('status','Sedang Dikerjakan')->get();
    $selesai        = Aduan::with('users')->where('status','Selesai')->get();
    return view('admin.admin_dashboard',[
        'belum_dikerjakan' => $belum_kerjakan,
        'dalam_proses'     => $dalam_proses,
        'selesai'          => $selesai,
        'ipsrs'            => $ipsrs,
    ]);

}


public function change_aduan($id) 
{

    $aduan = Aduan::findOrFail($id);
    if (!$aduan)
    abort(404);

    return view('admin.admin_dashboard',[
        'aduan' => $aduan
    ]);
}

这条路线。 (但我不知道我在哪里用过这条路线?

 Route::get('admin_dashboard', 'AdminController@index')->name('admin_dashboard');  // this route for view table
 Route::get('change/{id}','AdminController@change_aduan')->name('change_aduan');   // this route "will" showing data on this modals

我的观点

 <div class="card-body" align='center'>
        <div class="card-body p-0">
            <table class="table table-condensed">
              <thead align="center">
                <tr class="satu">
                  <th style="width: 3%">#</th>
                  <th style="width: 10%">Nama Unit</th>
                  <th style="width: 15%">Tanggal Aduan</th>
                  <th style="width: 8%">Nama Pengadu</th>
                  <th style="width: 8%">Tujuan Aduan</th>
                  <th style="width: 30%">Isi Aduan </th>
                  {{-- <th>Label</th> --}}
                  <th style="width: 5%">Status</th>
                  <th style="width: 5%">Action</th>
                </tr>
              </thead>
              <tbody>
                @php
                  $no=0;
                 @endphp
                 @foreach ($belum_dikerjakan as $i)
                <tr>
                  <td> {{++$no}} </td>
                  <td> {{$i->users->nama_unit}}</td>
                  <td> {{$i->created_at}} </td>
                  <td> {{$i->nama_pengadu}} </td>
                  <td> {{$i->ipsrs->nama_bagian}} </td>
                  <td> {{$i->aduan}}</td>
                  <td><span class="badge bg-danger"> Belum Dikerjakan</span></td>
                  <td><button type="button" class="btn btn-default" data-toggle="modal" data-id="{{$i->id}}" data-target="#modal-lg" > // modals button
                    Action
                  </button></td>
                </tr> 
                @endforeach
              </tbody>
            </table>
          </div>
    </div>

    <div class="modal fade" id="modal-lg">
        <div class="modal-dialog modal-lg">
          <div class="modal-content">
            <div class="modal-header">
              <h4 class="modal-title"> Change Status  </h4>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <div class="modal-body">

            {{-- Here this Form --}}
             {{-- {{$aduan->nama_pengadu}} --}} // this Line is failur
            </div>
            <div class="modal-footer justify-content-between">
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
              <button type="button" class="btn btn-primary">Save changes</button>
            </div>
          </div>
          <!-- /.modal-content -->
        </div>
        <!-- /.modal-dialog -->
      </div>

我不知道下一步该怎么做,在另一个教程中可以使用 {{ $data->name }} 显示此数据,但我认为不能这样做。怎么了,我该如何解决?

我想你已经不远了。我相信您遇到的问题是您试图从 集合 而不是 对象 中提取 name 字段。

在您的 Blade 文件中,这一行:

<td> {{$i->users->nama_unit}}</td>

本质上是在说:对于 $belum_dikerjakan 的这次迭代 ($i),给我所有的 users 并告诉我 集合的名称 用户。该集合没有 name 字段。因为这个 $belum_dikerjakan 有很多用户,所以你要么需要循环所有这些用户,通过 id 识别特定用户(例如 $i->users->where('id', 1)->first()->nama_unit),要么随机取第一个:

$i->users->first()->nama_unit

这些示例的作用是,它提取单个 object 用户而不是集合,因此您在 上有字段 name对象.

这一行:

 <td> {{$i->ipsrs->nama_bagian}} </td>

看起来根本不像关系,您可能需要将其重构为 $belum_dikerjakan 上的关系,或者将其从循环中移除并独立使用,但这是一个单独的问题我觉得。

希望对您有所帮助。