Неопределенная переменная: идентификатор (Вид: C:xampphtdocsFYPDigitalOPDATMresourcesviewspupdate.blade.php )

#php #laravel

#php #laravel

Вопрос:

У меня возникает эта ошибка при выполнении запроса на обновление. Мое представление даже не запущено. Пожалуйста, помогите. В настоящее время я не могу загрузить форму. Кроме того, запрос на обновление также должен работать.

Это мой файл просмотра, здесь я объявил $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>
                    amp;nbsp; amp;nbsp; amp;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>
 

Заранее благодарю вас!

Ответ №1:

посмотрите на это

 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', AppHttpControllersPatientController::class);
 

контроллер (PatientController.php ):

 <?php

namespace AppHttpControllers;

use AppModelspatient_info;
use IlluminateHttpRequest;

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

затем измените свое представление так, как вам нужно (если вам нужно вызвать функцию show ИЛИ create в PatientController, вы можете сделать это с помощью href/action=»{{ route(‘patients.show’,$id) }} ИЛИ href/action=»{{ route(‘patients.create’)}}

Комментарии:

1. Сэр, как я могу определить $id здесь, не могли бы вы, пожалуйста, направить меня.

2.если вы все еще застряли, пожалуйста, укажите (скопируйте вставьте) ваш текущий URL-адрес в комментарии ниже

3. ах, я понимаю, пожалуйста, подождите

4. Хорошо, конечно, сэр. 🙂

5. Большое спасибо, сэр.