缺少路线

时间:2016-10-18 12:05:05

标签: php laravel laravel-5

我想问一下如何修复此错误。我有这个错误缺少[Route: userprofile.edit] [URI: userprofile/{userprofile}/edit]. (View: C:\xampp\htdocs\code\task1\resources\views\userprofile\create.blade.php)

所需的参数

我在视图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">

如果你知道为什么会出现这个错误,请写信给我! 谢谢。

3 个答案:

答案 0 :(得分:0)

您无法向输入字段添加操作。向form标记添加操作。您没有在表单操作中传递任何 id 。像我通过 id = 1

一样为您的操作添加ID
<form method="post" action="{{ route('userprofile.edit', ['id' => 1]) }}">

更新

首先,您必须使用给定数据创建用户,然后使用生成的ID重定向到编辑页面。

答案 1 :(得分:0)

您需要为传递给edit的ID以及其他方法设置默认值,如下所示:

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

在此,我们将id的默认值设置为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,我们只需返回并通知用户(您必须检查刀片视图中的错误并显示它(如果存在)。

答案 2 :(得分:-1)

而不是

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

PROFILE ID必须为id