【发布时间】:2015-10-16 23:15:43
【问题描述】:
我是 laravel 的新手,到处搜索但无法修复此错误:
传递给 InsertController::insert() 的参数 1 必须是 Illuminate\Http\Request 的实例,没有给出
我正在尝试通过传入 Request 方法来验证我的输入,因此我不必为每个表单重新编写新的验证方法,但它似乎总是给我这个错误。
<?php
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class InsertController extends Controller {
public function insert(Request $request) {
$username = Input::get('username');
$pw = Hash::make(Input::get('pw'));
$email = Input::get('email');
$this->validate($request, ['name' => 'required|unique:users',
'password' => 'required|min:8|max:255',
'email' => 'required|email|unique:users']);
if(!$validator->fails()) {
$user = DB::table('users')->insert(
['email' => $email, 'password' => $pw, 'name' => $username]);
}
}
}
这也是我调用它的路线。
Route::post('users', ['uses' => 'InsertController@insert', 'before' => 'csrf'], function()
{
$users = User::all(); //call the User model for all data in users table
return View::make('users')->with('users', $users);
});
【问题讨论】:
-
你怎么称呼那个控制器?你能粘贴你的routes.php的一部分吗?
-
@jedrzej.kurylo 我在路线中编辑
-
作为第三个参数传递给 Route::post() 的函数是什么?
-
你使用的是哪个版本的 Laravel?
-
@jedrzej.kurylo 4.2.17,我还不确定那部分到底是什么意思。在我找到的每个教程中,我在每条路线的末尾都看到了 function()
标签: php validation laravel