【发布时间】:2017-01-26 08:56:45
【问题描述】:
我正在尝试为时事通讯构建一个控制器,她是我的代码:
控制器
public function postNews(Request $request, $user) {
$this->validate($request, [ 'email' => 'required | email' ]);
$user = User::findOrFail($id);
$data = array(
'email' => $request->email);
$token = $request->input('g-recaptcha-response');
if (strlen($token) > 0 ) {
Mail::send('emails.newsletter', $data, function( $message ) use ($data) {
$message->from($data['email']);
$message->to($user->email, $user->name)->subject('A-Studio News Letter');
//$message->subject($data['subject']);
});
Session::flash('success', 'Grazie per esserti iscritto alla nostra news letter!');
return view('blog.posts')->withPosts($posts);
}else {
return view('pages.nobot');
}
}
路线
Route::post('posts/{user}', ['uses' => 'BlogController@postNews', 'as' => 'blog.posts']);
回应 RouteCollection.php 第 218 行中的 MethodNotAllowedHttpException:
有什么想法吗?
谢谢。
【问题讨论】:
-
仔细查看您的路线。是否有其他路线具有
'posts/{var}'?如果它是在您的POST路由之前定义的,它将覆盖它并且您会得到一个MethodNotAllowedHttpException,因为该路由的格式不正确。 -
请贴出调用
blog.post路由的代码。 -
使用 post 路由,我猜您正在提交表单。为什么要使用动态 URI
{user}提交表单?发送这篇文章时,你对路由中的{user}变量做了什么? -
@Michel Yep 我正在提交一个表单,它只有一个输入(电子邮件),实际上它是一个订阅表单,一个输入一个按钮。我使用的是 dyn uri,因为会弹出一个 Whoops 要求 2 Missing 参数..
-
@RoemerBakker 这里是博客路由列表: Route::get('posts', 'BlogController@getPosts'); ; Route::post('posts/{user}', ['uses' => 'BlogController@postNews', 'as' => 'blog.posts']); Route::get('blog/{title}', ['uses' => 'BlogController@getArticoli', 'as' => 'blog.articoli']);
标签: laravel