簡體   English   中英

缺少路線所需的參數

[英]Missing required parameters for route

我想問一下如何解決這個錯誤。 我有此錯誤[Route: userprofile.edit] [URI: userprofile/{userprofile}/edit]. (View: C:\\xampp\\htdocs\\code\\task1\\resources\\views\\userprofile\\create.blade.php)缺少必需的參數[Route: userprofile.edit] [URI: userprofile/{userprofile}/edit]. (View: C:\\xampp\\htdocs\\code\\task1\\resources\\views\\userprofile\\create.blade.php) [Route: userprofile.edit] [URI: userprofile/{userprofile}/edit]. (View: C:\\xampp\\htdocs\\code\\task1\\resources\\views\\userprofile\\create.blade.php)

我在view userprofile\\create.blade.php有用戶信息,提交按鈕后,我想在userprofile\\edit.blade.php上重新定位頁面

這是我的userProfileController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\User;

class userProfileController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * 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)
    {
        $user = User::find($id);
        return view('userprofile.edit')->withUser($user);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

也是此視圖的路線

Route::group(['namespace' => 'User'], function(){
 Route::get('/userprofile/{id}/edit', ['as' => 'userprofile.edit', 'uses' => 'userProfileController@edit']);
});


Route::resource('userprofile','userProfileController');

我的路線動作在create.blade.php中的按鈕中

<input type="submit" class="btn btn-primary" action="{{ route('userprofile.edit') }}" value="Edit profile">

如果您知道為什么會出現此錯誤,請給我寫信! 謝謝。

您無法將操作添加到輸入字段。 form標簽添加操作。 您沒有在表單操作中傳遞任何ID 將id添加到您的操作中,就像我已通過id = 1

<form method="post" action="{{ route('userprofile.edit', ['id' => 1]) }}">

更新資料

首先,您必須使用給定的數據創建一個用戶,然后,使用生成的ID重定向到編輯頁面。

您需要為傳遞給edit和其他方法的id設置默認值,如下所示:

public function edit($id = null)
{
    $user = User::find($id);
    return view('userprofile.edit')->withUser($user);
}

在這里,我們將id的默認值設置為null 接下來,檢查您的方法是否為null,如果為null,則返回錯誤或在這種情況下想要執行的操作:

public function edit($id = null)
{
    if(!$id)
      return back()->with(['error'=>'No document selected for editing.']);

    $user = User::find($id);
    return view('userprofile.edit')->withUser($user);
}

if(!$id) return back()->with(['error'=>'No document selected for editing.']);

這是您的檢查,如果id為null,我們僅返回並通知用戶(您必須在刀片視圖中檢查錯誤,如果存在,則將其顯示)。

代替

<input type="submit" class="btn btn-primary" action="{{ route('userprofile.edit') }}" value="Edit profile">

采用

<a href="{{url('/userprofile/'.PROFILE ID.'/edit')" class="btn btn-primary" >Edit profile</a>

個人資料ID必須為ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM