如何在拉拉维尔(Laravel)同时在拉拉维(Laravel

发布于 2025-02-08 11:16:13 字数 5473 浏览 2 评论 0原文

首先,我的代码在查询时仅使用一个参数可以正常工作,但是当我添加更多参数时,它会开始丢弃错误。

这是myEditController file:

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['query'];
        $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)

:我用日期过滤过滤效果很好,但是当我开始使用字符串查询时,它在下面显示此错误:

“在此处输入图像说明”

我该如何解决?

谢谢....

At first my code works fine with just one parameter when querying, but when I add more parameters, it start to throw errors.

Here is MyEditController file:

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();

}

Here is my web.php :

Route::resource('lokasipekerjaan', AdminEditController::class);

Here is my Blade:

 @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>

Here is My Controller:

public function lihatdata(){
        if(Auth::id()){
        $caridata = $_GET['query'];
        $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');
        }
    }

When I adding Some Parameter using this code it start showing error:

->select(
            DB::raw("DATE(tanggal) as tanggal"),
        );
    })->whereDate('tanggal','>=',$tanggal_dari) 
    ->whereDate('tanggal','<=',$tanggal_ke)

When I filter it with date it work fine but when I start to querying with strings it showing this error below:

enter image description here

How Can i fix that please ?

Thank You....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱冒险 2025-02-15 11:16:13

需要命名参数:

{{route('lokasipekerjaan.edit',['lokasipekerjaan'=>$datas->id])}}

还请确保您获得匹配项。
$ datas-&gt; id可能是空的。当供电时,您可以检查$ data-&gt; total()如果是0,则意味着当您通过关键字过滤时没有匹配项。

编辑:
因此,当逻辑覆盖选择逻辑时,看起来您似乎是您的:

->select(
    DB::raw("DATE(tanggal) as tanggal"),
)

在上面,当您获得*之前,您现在不再获得ID字段。您应该添加所需的字段:

->select(
    DB::raw("DATE(tanggal) as tanggal, id")
)

edit2:

在外部日期范围内,查询中没有括号会生成。您需要将搜索逻辑包装在括号中,否则将检查以下是true的,以及日期范围检查之前的短路。

而不是这样:

$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);

将搜索包裹在类似的地方:

        $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);

The parameter needs to be named:

{{route('lokasipekerjaan.edit',['lokasipekerjaan'=>$datas->id])}}

Also make sure you're getting matches.
$datas->id is probably null. When paginating you can check $data->total() if it's 0 that means there's no matches when you're filtering by a keyword.

Edit:
So it looks like your when logic overrides the select logic:

->select(
    DB::raw("DATE(tanggal) as tanggal"),
)

In the above, when you before were getting *, you now no longer get the id field. You should add the fields which you need:

->select(
    DB::raw("DATE(tanggal) as tanggal, id")
)

Edit2:

Regarding the outside date range, there's no parenthesis within the query that will get generated. You'd want to wrap the searching logic within parenthesis otherwise the OR's would check whichever is true, and short circuit before the date range check.

Instead of this:

$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);

Wrap the search within a where like so:

        $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);
撕心裂肺的伤痛 2025-02-15 11:16:13

路由lokasipekerjaan/ {path_parameter} /编辑缺少所需的路径参数。
查找

route('lokasipekerjaan.edit', $params)

admin.lihat_data

查看文件的代码片段。 $ params变量可能由空还是空?

The route lokasipekerjaan/{path_parameter}/edit is missing a required path parameter.
Look for code snippets like

route('lokasipekerjaan.edit', $params)

on admin.lihat_data

view file. the $params variable may by empty or null?

美人迟暮 2025-02-15 11:16:13

我想我得到答案是当代码错误时:

public function lihatdata(){
    if(Auth::id()){
    $caridata = $_GET['query'];
    $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['query'];
    $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"),
    )

我不知道我的代码是如何工作的...但是,如果有人知道你们背后的理论可以回答。...

但是它真的不起作用...它仍在日期之外显示其他数据。如果有人知道如何完全过滤它并忽略日期参数背后的查询?

谢谢你的帮助...

i think i get the answer this is when the code error:

public function lihatdata(){
    if(Auth::id()){
    $caridata = $_GET['query'];
    $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');
    }
}

this when it work:

 public function lihatdata(){
    if(Auth::id()){
    $caridata = $_GET['query'];
    $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');
    }
}

this is what i remove in my code :

->select(
        DB::raw("DATE(tanggal) as tanggal"),
    )

i don't know how my code is working... but if someone know the theory behind that you guys can answer it....

but it doesn't work really what i wanted to... it's still showing the other data outside of the date.if anyone know how to filter it entirely and ignore the query behind the date parameter please ?

thank you for the help guys...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文