【发布时间】:2019-01-09 12:48:38
【问题描述】:
我在 laravel 中提交表单时遇到问题。我的表单结构是这样的。
<form class="form-group" action="{{ route('writepoem') }}"
method="post" name="publish" enctype="multipart/form-data"
onsubmit="return validateForm();">
<input type="hidden" name="_token" value="{{ Session::token() }}">
<input type="text" name="user">
<textarea name="poem"></textarea>
<input type="submit" value="save">
</form>
我的 web.php 文件有这个路由。
Route::post('/writepoem', ['uses'=>'PoemController@postCreatePoem','as'=>'writepoem']);
我的诗控制器。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Poem;
class PoemController extends Controller
{
public function postCreatePoem(Request $request)
{
//validation
$poem=new Poem();
$poem->poem=$request['poem'];
$poem->user=$request['user'];
//save poem
$request->user()->poems()->save($poem);
return redirect()->route('feed');
}
}
在提交我的表单时,我得到了这个例外。
(1/1) NotFoundHttpException
在 RouteCollection.php 第 179 行。
路由可能有什么问题?
【问题讨论】:
-
诗歌创作了吗?可能是
return redirect()->route('feed');的问题。另外,$poem->poem=$request['poem']; $poem->poem=$request['user'];看起来也不对;您将$poem->poem两次设置为不同的变量。还有,没见过$request["poem"];;不确定是否有问题,但我通常使用$request->input("poem")或$request->poem(避免$request->input("user");的第二次使用) -
@TimLewis 不,这首诗没有被创建,它抛出异常 NotFoundHttpException。
-
首先,缺少 csrf_token (但这可能不是这里的问题)。表单的实际作用是什么?你能检查一下并告诉我们吗?
-
嗯...乍一看,一切正常;使用正确的方法(
="post"代表Route::post())正确命名了路线(否则会出现错误)。试试{{ url("/writepoem") }}看看会不会有什么不同。 -
@TimLewis 我试过 {{ url("/writepoem") }} 但我仍然遇到异常。