起初我的代碼在查詢時只使用一個引數就可以正常作業,但是當我添加更多引數時它開始出錯......這是 MyEditController 檔案:
class AdminEditController extends Controller
{
//edit didalam lihat_datafile
public function edit(Request $request,$id){
$data = lokasipekerjaan::find($id);
$data->mid=$request->mid;
$data->subid=$request->subid;
$data->pekerjaan=$request->pekerjaan;
$data->lokasi=$request->lokasi;
$data->uom=$request->uom;
$data->cut=$request->cut;
$data->fill=$request->fill;
$data->area=$request->area;
$data->tanggal=$request->tanggal;
$data->save();
return redirect()->back();
}
這是我的 web.php :
Route::resource('lokasipekerjaan', AdminEditController::class);
這是我的刀片:
@foreach($data as $datas)
<form action="{{route('lokasipekerjaan.edit',[$datas->id])}}" method="PUT">
<tr class="table-info">
<td> <input type="text" value="{{ $datas->id }}" class="" style="background-color: #E0FFFF;width:40px;height:40px;" name="id" :value="old('id')"> </input> </td>
<td><input id="{{ $datas->mid }}" type="text" value="{{ $datas->mid }}" class="" style="background-color: #E0FFFF;width:40px;height:40px;" name="mid" :value="old('mid')"></td>
<td> <input id="{{ $datas->subid }}" type="text" value="{{ $datas->subid }} " class="" style="background-color: #E0FFFF;width:100px;height:40px;" name="subid" :value="old('subid')"> </td>
<td> <input id="{{ $datas->pekerjaan }}" type="text" value="{{ $datas->pekerjaan }} "class="" style="background-color: #E0FFFF;height:40px;" name="pekerjaan" :value="old('pekerjaan')"> </td>
<td> <input id="{{ $datas->lokasi }}" type="text" value="{{ $datas->lokasi }} " class="" style="background-color: #E0FFFF;height:40px;" name="lokasi" :value="old('lokasi')"> </td>
<td> <input id="{{ $datas->cut }}" type="text" value="{{ $datas->cut }} " class="" style="background-color: #E0FFFF;height:40px;" name="volume" :value="old('cut')"> </td>
<td> <input id="{{ $datas->fill }}" type="text" value="{{ $datas->fill }} " class="" style="background-color: #E0FFFF;height:40px;" name="volume" :value="old('fill')"> </td>
<td> <input id="{{ $datas->area }}" type="text" value="{{ $datas->area }} " class="" style="background-color: #E0FFFF;height:40px;" name="volume" :value="old('area')"> </td>
<td> <input id="{{ $datas->uom }}" type="text" value="{{ $datas->uom }} " class="" style="background-color: #E0FFFF;width:40px;height:40px;" name="uom" :value="old('uom')"> </td>
<td> <input value="{{ $datas->tanggal }} " type="text" value="{{ $datas->tanggal }} " class="" style="background-color: #E0FFFF;width:100px;height:40px;" name="tanggal" :value="old('tanggal')"> </td>
<td>
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{csrf_token()}}">
<input type="submit" onclick="return confirm('apakah anda yakin ingin mengedit data ini ?');" class="btn btn-primary" value="Edit"/>@method('PUT')
</form></td>
這是我的控制器:
public function lihatdata(){
if(Auth::id()){
$caridata = $_GET['querry'];
$tanggal_dari = $_GET['tanggaldari'];
$tanggal_ke = $_GET['tanggalke'];
$filtersubid = dataacuan::select('subid')->whereNotNull('subid')->distinct()->get();
$data = lokasipekerjaan::when($caridata,function($caridatat,$caridata){
return $caridatat->where('cut','LIKE','%'.$caridata.'%')
->orwhere('fill','LIKE','%'.$caridata.'%')
->orwhere('mid','LIKE','%'.$caridata.'%')
->orwhere('subid','LIKE','%'.$caridata.'%')
->orwhere('lokasi','LIKE','%'.$caridata.'%')
->orwhere('id','LIKE','%'.$caridata.'%')
->orwhere('pekerjaan','LIKE','%'.$caridata.'%')
->groupby('subid')->select(
DB::raw("DATE(tanggal) as tanggal"),
);
})->whereDate('tanggal','>=',$tanggal_dari)
->whereDate('tanggal','<=',$tanggal_ke)->paginate(5);
return view('admin.lihat_data',compact('data','caridata','filtersubid','tanggal_dari','tanggal_ke'));}else{
return view('admin.notfound');
}
}
當我使用此代碼添加一些引數時,它開始顯示錯誤:
->select(
DB::raw("DATE(tanggal) as tanggal"),
);
})->whereDate('tanggal','>=',$tanggal_dari)
->whereDate('tanggal','<=',$tanggal_ke)
當我用日期過濾它時它作業正常但是當我開始用字串查詢時它在下面顯示這個錯誤:

請問我該如何解決?
謝謝你....
uj5u.com熱心網友回復:
引數需要命名:
{{route('lokasipekerjaan.edit',['lokasipekerjaan'=>$datas->id])}}
還要確保你得到匹配。
$datas->id可能為空。分頁時,您可以檢查$data->total()它是否為 0,這意味著當您按關鍵字過濾時沒有匹配項。
編輯: 所以看起來你的 when 邏輯覆寫了選擇邏輯:
->select(
DB::raw("DATE(tanggal) as tanggal"),
)
在上面,當你以前得到 時*,你現在不再得到 id 欄位。您應該添加所需的欄位:
->select(
DB::raw("DATE(tanggal) as tanggal, id")
)
編輯2:
關于外部日期范圍,查詢中不會生成括號。您希望將搜索邏輯包含在括號中,否則 OR 將檢查哪個為真,并在日期范圍檢查之前短路。
而不是這個:
$data = lokasipekerjaan::when($caridata,function($caridatat,$caridata){
return $caridatat->where('cut','LIKE','%'.$caridata.'%')
->orwhere('fill','LIKE','%'.$caridata.'%')
->orwhere('mid','LIKE','%'.$caridata.'%')
->orwhere('subid','LIKE','%'.$caridata.'%')
->orwhere('lokasi','LIKE','%'.$caridata.'%')
->orwhere('id','LIKE','%'.$caridata.'%')
->orwhere('pekerjaan','LIKE','%'.$caridata.'%')
->groupby('subid')->select(
DB::raw("DATE(tanggal) as tanggal"),
);
})->whereDate('tanggal','>=',$tanggal_dari)
->whereDate('tanggal','<=',$tanggal_ke)->paginate(5);
將搜索包裝在 where 中,如下所示:
$data = lokasipekerjaan::when($caridata,function($caridatat,$caridata){
return $caridatat->where(function($caridatat) use ($caridata) {
$caridatat->where('cut','LIKE','%'.$caridata.'%')
->orwhere('fill','LIKE','%'.$caridata.'%')
->orwhere('mid','LIKE','%'.$caridata.'%')
->orwhere('subid','LIKE','%'.$caridata.'%')
->orwhere('lokasi','LIKE','%'.$caridata.'%')
->orwhere('id','LIKE','%'.$caridata.'%')
->orwhere('pekerjaan','LIKE','%'.$caridata.'%')
->groupby('subid')->select(
DB::raw("DATE(tanggal) as tanggal"),
);
});
})->whereDate('tanggal','>=',$tanggal_dari)
->whereDate('tanggal','<=',$tanggal_ke)->paginate(5);
uj5u.com熱心網友回復:
路線 lokasipekerjaan/ {path_parameter} /edit 缺少必需的路徑引數。尋找代碼片段,例如
route('lokasipekerjaan.edit', $params)
在admin.lihat_data
查看檔案。$params 變數可能是空的還是空的?
uj5u.com熱心網友回復:
我想我得到了答案,這是代碼錯誤時:
public function lihatdata(){
if(Auth::id()){
$caridata = $_GET['querry'];
$tanggal_dari = $_GET['tanggaldari'];
$tanggal_ke = $_GET['tanggalke'];
$filtersubid = dataacuan::select('subid')->whereNotNull('subid')->distinct()->get();
$data = lokasipekerjaan::when($caridata,function($caridatat,$caridata){
return $caridatat->where('cut','LIKE','%'.$caridata.'%')
->orwhere('fill','LIKE','%'.$caridata.'%')
->orwhere('mid','LIKE','%'.$caridata.'%')
->orwhere('subid','LIKE','%'.$caridata.'%')
->orwhere('lokasi','LIKE','%'.$caridata.'%')
->orwhere('id','LIKE','%'.$caridata.'%')
->orwhere('pekerjaan','LIKE','%'.$caridata.'%')
->groupby('subid')->select(
DB::raw("DATE(tanggal) as tanggal"),
);
})->whereDate('tanggal','>=',$tanggal_dari)
->whereDate('tanggal','<=',$tanggal_ke)->paginate(5);
return view('admin.lihat_data',compact('data','caridata','filtersubid','tanggal_dari','tanggal_ke'));}else{
return view('admin.notfound');
}
}
當它作業時:
public function lihatdata(){
if(Auth::id()){
$caridata = $_GET['querry'];
$tanggal_dari = $_GET['tanggaldari'];
$tanggal_ke = $_GET['tanggalke'];
$filtersubid = dataacuan::select('subid')->whereNotNull('subid')->distinct()->get();
$data = lokasipekerjaan::when($caridata,function($caridatat,$caridata){
return $caridatat->where('cut','LIKE','%'.$caridata.'%')
->orwhere('fill','LIKE','%'.$caridata.'%')
->orwhere('mid','LIKE','%'.$caridata.'%')
->orwhere('subid','LIKE','%'.$caridata.'%')
->orwhere('lokasi','LIKE','%'.$caridata.'%')
->orwhere('id','LIKE','%'.$caridata.'%')
->orwhere('pekerjaan','LIKE','%'.$caridata.'%')
->groupby('subid');
})->whereDate('tanggal','>=',$tanggal_dari)
->whereDate('tanggal','<=',$tanggal_ke)->paginate(5);
return view('admin.lihat_data',compact('data','caridata','filtersubid','tanggal_dari','tanggal_ke'));}else{
return view('admin.notfound');
}
}
這是我在代碼中洗掉的內容:
->select(
DB::raw("DATE(tanggal) as tanggal"),
)
我不知道我的代碼是如何作業的......但是如果有人知道你們可以回答它背后的理論......
但它并沒有真正達到我想要的效果......它仍然顯示日期之外的其他資料。如果有人知道如何完全過濾它并忽略日期引數后面的查詢嗎?
謝謝你們的幫助...
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/492742.html
上一篇:如何根據id對嵌套陣列進行分組?
