如何为laravel CRUD实现简单的搜索功能

问题描述 投票:1回答:1

当我单击搜索按钮时,将显示。error image

它显示错误异常((不能使用Illuminate \ Database \ MySqlConnection类型的对象作为数组)

<div class='container'>
<div class="row" >   
<div class="col-md-12">
    <br  />
    <h3 align="center">Data Pesakit</h3>
    <br />
    @if($message = Session::get('success'))
    <div class="alert alert-success">
        <p>{{$message}}</p>
    </div>
    @endif
    <div align="right">
        <a href="{{route('pesakit.create')}}" class="btn btn-primary">Add</a>
        <br />
        <br />
    </div>
    <div class="col-md-12">
    <form action="/search" method="get" class="d-none d-md-inline-block form-inline ml-auto mr-0 mr-md-3 my-2 my-md-0">
        <div class="form-group">
        <input class="form-control" type="search" name="search" />
        <span class="form-group-btn">
            <button class="btn btn-primary" type="submit">Search</button>
        </span>
        </div>
    </form>
    </div>
    <table class="table table-bordered">
        <tr>
            <th>Nama Pertama</th>
            <th>Nama Akhir</th>
            <th>Kad Pengenalan</th>
            <th>No Telefon</th>
            <th>Alamat Rumah</th>
            <th>Alamat Email</th>
            <th>Edit</th>
            <th>Delete</th>
        </tr>
        @foreach($pesakit as $row)
        <tr>
            <td>{{$row['namaPertama']}}</td>
            <td>{{$row['namaAkhir']}}</td>
            <td>{{$row['kadPengenalan']}}</td>
            <td>{{$row['noTelefon']}}</td>
            <td>{{$row['alamatRumah']}}</td>
            <td>{{$row['email']}}</td>
            <td><a href="{{action('PesakitController@edit',$row['id'])}}" class="btn btn-warning">Edit</a></td>
            <td><form method="post" class="delete_form" action="{{action('PesakitController@destroy',$row['id'])}}">
                    {{csrf_field()}}
                    <input type="hidden" name="_method" value="DELETE" />
                    <button type="submit" class="btn btn-danger">Delete</button>
            </form>
            </td>
        </tr>
        @endforeach
    </table>

    </div>
    </div>
    </div>
    <script>
    $(document).ready(function(){
    $('.delete_form').on('submit', function(){
    if(confirm("Are you sure you want to delete it?"))
    {
        return true;
    }
    else
    {
        return false;
    }
});
});
</script>
@endsection

这是视图代码

class PesakitController extends Controller
{
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    $pesakit = Pesakit::all()->toArray();
    return view('pesakit.index', compact('pesakit'));
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    return view('pesakit.create');
}

public function search(Request $request)
{
    $search = $request->get('search');
    $pesakit =  DB::table('pesakit')
    ->where('namaPertama', 'like', '%'.$search. '%');
    return view('pesakit.index', ['pesakit'=>$pesakit]);
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    $this->validate($request, [
        'namaPertama'  =>  'required',
        'namaAkhir'  =>  'required',
        'kadPengenalan'  =>  'required',
        'noTelefon'  =>  'required',
        'alamatRumah'  =>  'required',
        'email'  =>  'required'
    ]);
    $pesakit = new Pesakit([
        'namaPertama' => $request->get('namaPertama'),
        'namaAkhir' => $request->get('namaAkhir'),
        'kadPengenalan' => $request->get('kadPengenalan'),
        'noTelefon' => $request->get('noTelefon'),
        'alamatRumah' => $request->get('alamatRumah'),
        'email' => $request->get('email')
    ]);
    $pesakit->save();
    return redirect()->route('pesakit.create')->with('success',
        'Data Berjaya Disimpan');
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function show($id)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function edit($id)
{
    $pesakit = Pesakit::find($id);
    return view('pesakit.edit', compact('pesakit', 'id')); 
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $this->validate($request, [
        'noTelefon'     =>  'required',
        'alamatRumah'   =>  'required'
    ]);
    $pesakit = Pesakit::find($id);
    $pesakit->noTelefon = $request->get('noTelefon');
    $pesakit->alamatRumah = $request->get('alamatRumah');
    $pesakit->save();
    return redirect()->route('pesakit.index')->with('success', 'Data Dikemas kini');
} 

/**
 * Remove the specified resource from storage.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function destroy($id)
{
    $pesakit = Pesakit::find($id);
    $pesakit->delete();
    return redirect()->route('pesakit.index')->with('success', 'Data Deleted');
}
}

这是控制器

Route::get('/', function () {
return view('utama');
});

Route::resource('pesakit', 'PesakitController');

Route::resource('petugas', 'PetugasController');

Route::resource('pendaftaran', 'PendaftaranController');

Route::get('/search','PesakitController@search');

这是路线

我试图寻找简单的错误,例如;或拼写错误或其他内容,但我找不到它。它说了一些数组问题,但并非所有问题都是数组吗?

laravel search crud
1个回答
1
投票

添加get()

© www.soinside.com 2019 - 2024. All rights reserved.