php - "Type error: Too few arguments to function App\Http\Controllers\UserController::create(), 0 passed and exactly 1 expected"

标签 php mysql database laravel

我在将数据插入数据库时​​遇到问题。假设我有一个名为 HeroController 的 Controller ,我想创建一个新的英雄对象并将其作为新英雄插入到我的数据库中。

我的 Controller 包含以下方法:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
//        return response()->json([
//            'name' => 'Abigail',
//            'state' => 'CA'
//        ]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6',
        ]);
    }
    public function create(array $data)
    {

        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data[password]),
        ]);
    }
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $user = $request->isMethod('put');

        $user = new User;
        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = $request->password;
        $user->save();

        return response()->json($usere, 201);
    }

    /**
     * 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)
    {
        //
    }

    /**
     * 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)
    {
        //
    }
}

我的routes.php文件:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});


Route::get('/users/create', 'UserController@create');

这是我收到的错误。类型错误:函数 App\Http\Controllers\UserController::attendance() 的参数太少,已传递 0 个,预期为 1 个”。我是 Laravel 的新手。

最佳答案

您正在使用 get 请求来调用 create 函数。

Route::get('/users/create', 'UserController@create');

因此,您没有将任何数据传递给该 Controller 。因此出现错误。

关于php - "Type error: Too few arguments to function App\Http\Controllers\UserController::create(), 0 passed and exactly 1 expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53362531/

相关文章:

mysql - SQL - 创建一个返回表行的函数

php - socket.io 中的 app.post ('/posts' 带有 https

php - PDO 有效 SELECT 和 INSERT

PHP MySql - 选择 similar_text()>x

database - 如何在 SH 脚本中使用 SQL 命令

mysql - 时间戳列 mysql 出错

mysql - 我们可以在数据库中存储多个数据条目,只对应一个主键/序列 ID 吗?

javascript - 替换 jQuery 单击事件上的标题文本

javascript - AngularJS 在更改使用相同 Controller 的页面时执行代码

php - mysql: 1 INSERT INTO 查询两个结果