我想问一下如何修复此错误。我有这个错误缺少[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">
如果你知道为什么会出现这个错误,请写信给我! 谢谢。
答案 0 :(得分:0)
您无法向输入字段添加操作。向form
标记添加操作。您没有在表单操作中传递任何 id 。像我通过 id = 1
<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