首页 > 解决方案 > 未定义变量:id(查看:C:\xampp\htdocs\FYP\DigitalOPDATM\resources\views\pupdate.blade.php)

问题描述

执行更新查询时出现此错误。我的观点甚至没有运行。请帮忙。目前,我无法加载表格。此外,更新查询也需要工作。

这是我的视图文件,我在表单标记的操作中声明了 $id:

<form method ="post" action="{{url('/pupdate',$id)}}" class="login100-form validate-form flex-sb flex-w">
            @CSRF

        
                <span class="login100-form-title p-b-16">
                    Patient Update
                </span>
                
                <span class="txt1 p-b-11">
                <br>Enter Username
                </span>
                <div class="wrap-input100  m-b-16">
                    <input class="input100" type="text" name="username" placeholder="Enter your name">
                    <span class="focus-input100"></span>
                </div>
                <span class="txt1 p-b-11">
                    Enter Email
                </span>
                <div class="wrap-input100  m-b-16" >
                    <input  class="input100" type="email" name="email" >
                    <span class="focus-input100"></span>
                </div>
                <span class="txt1 p-b-11">
                    Enter CNIC
                </span>
                <div class="wrap-input100  m-b-16" >
                    <input   class="input100" type="cnic" name="cnic" >
                    <span class="focus-input100"></span>
                </div>
                <span class="txt1 p-b-11">
                    Enter Password
                </span>
                <div class="wrap-input100  m-b-16" >
                    <input   class="input100" type="password" name="password" >
                    <span class="focus-input100"></span>
                </div>
                
                <span class="txt1 p-b-11">
                    Confirm Password
                </span>
                <div class="wrap-input100  m-b-16" >
                    <input   class="input100" type="password" name="confirmpassword" >
                    <span class="focus-input100"></span>
                </div>
                
                <div class="flex-sb-m w-full p-b-16">
                    <div class="contact100-form-checkbox">
                        <input class="input-checkbox100" id="ckb1" type="checkbox" name="remember-me">
                        <label class="label-checkbox100" for="ckb1">
                            Keep me signed in
                        </label>
                    </div>
                </div>

                <div class="container-login100-form-btn">
                    <button class="login100-form-btn bg-info" type="submit" name="action" value="SignUp">
                        Update
                    </button>
                    &nbsp; &nbsp; &nbsp; 
                    <a class="login50-form-btn" href="/" >
                        <button class="login100-form-btn" type="button"   >
                            Home
                        </button>
                    </a>
                </div>
                
            </form>

这是我的控制器功能:

 public function pup(Request $req,$id)
    {
        $update = patient_info::find($id);
        $update->username = $req->username;
        $update->email = $req->email;
        $update->cnic = $req->cnic;
        $update->password = $req->password;
        $update->confirmpassword = $req->confirmpassword;
        $update->save();
        return redirect('/delpatient');
    }
    public function showup($id)
    {
        $update=patient_info::find($id);
        return view('/pupdate',compact('pupdate','id'));
    }

这是我的路线:

Route::post('/pudate{id}', 'AdminController@pup');
   Route::get('showup{id}', 'AdminController@showup');
   Route::get('/pupdate', function () {
   return view('/pupdate');
});

这是我的注册患者表视图:

    center><h1>Registered Patients</h1></center>

<form >
<table class="table table-bordered table-striped">
            <tr  class="bg-danger text-light">
                <th>ID</th>
                <th>User Name</th>
                <th>Email</th>
                <th>CNIC</th>
                <th>Password</th>
                <th>Confirm Password</th>
                <th>Delete Patient Account</th>
                <th>Update Patient Account</th>
            </tr>
            @foreach($regpat as $row)
           
            <tr  class="bg-secondary text-light">
            <td>{{$row['id']}}</td>
            <td>{{$row['username']}}</td>
            <td>{{$row['email']}}</td>
            <td>{{$row['cnic']}}</td>
            <td>{{$row['password']}}</td>
            <td>{{$row['confirmpassword']}}</td>
            <td><a href="delp{{$row['id']}}" class="btn btn-danger ">Delete</a></td>
            <td><a href="{{showp{{$row['id']}}" class="btn btn-primary ">Update</a></td>
            </tr>
            @endforeach
        </table>
        </form>

先感谢您!

标签: phplaravel

解决方案


看这个

Route::post('/pudate/{id}', 'AdminController@pup');
Route::get('showup/{id}', 'AdminController@showup');
Route::get('/pupdate', function () {
// you should define $id here, because you're returning to /pupdate view without passing $id
return view('/pupdate');
});

如果您仍然卡住,请在下面的评论中输入(复制+粘贴)您当前的 URL

试试这个代码(下)

路线(web.php):

Route::resource('patients', App\Http\Controllers\PatientController::class);

控制器(PatientController.php):

<?php

namespace App\Http\Controllers;

use App\Models\patient_info;
use Illuminate\Http\Request;

class PatientController extends Controller
{

public function index()
{
    $patients = patient_info::get();
    
    // return view('TARGET', compact('patients'));
}

public function create()
{

}

public function store(Request $request)
{
    $store = patient_info::create($request->all());        

    return redirect()->route('patients.index'); // or you can custom return in this line
}

public function show($id)
{
    
}

public function edit($id)
{
    $patient = patient_info::where('id',$id)->first();

    // return view('TARGET',compact('patient','id'));
}

public function update(Request $request, $id)
{
    $update = patient_info::where('id',$id)->update($request->all());

    return redirect()->route('patients.index'); // or you can custom return in this line
}

public function destroy($id)
{
    $patient = patient_info::where('id',$id)->first();
    $patient->delete();

    return redirect()->route('patients.index'); // or you can custom return in this line
}
}

然后根据需要修改您的视图(如果您需要在 PatientController 调用 show 或 create 函数,您可以通过 href/action="{{ route('patients.show',$id) }} OR href/action=" {{ 路线('患者.创建')}}


推荐阅读