我使用的是laravel 5.4,我需要为“createUser”打开一个端点。
“登录控制器”
public function createUser(Request $request)
{
$data=$request->only('email','name','position');
$validate=Validator::make($data, [
'email' => 'required|email|unique:users',
'name' => 'required',
'position' => 'required',
]);
$exUser=User::where('email','=',$request['email'])->first();
$nameUser=User::where('name','=',$request['name'])->first();
if(empty($exUser))
{
if(empty($nameUser))
{
$user=new User();
$user->name=$request['name'];
$user->email=$request['email'];
$user->position=$request['position'];
$user->password=hash('sha512',$request['password']);
$user->save();
}
else
{
return response()->json(['Name Has Already Taken'],500);
}
}
else
{
return response()->json(['Email Has Already Taken'],500);
}
}
“注册控制器.php”
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'position' => $data['position'],
'password' => bcrypt($data['password'])
]);
}
“api.php文件名”
<?php
use App\User;
use Illuminate\Http\Request;
Route::get('users',['as' => 'user', 'uses'
=>'Auth\LoginController@getUsers']);
Route::post('users', ['as' => 'createUser', 'uses' =>
'Auth\LoginController@createUser']);
“使用者.php”
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'position' ,'password'
];
protected $hidden = [
'password', 'remember_token',
];
}
“ Postman 详情”x1c 0d1x
get“users”端点工作正常!但是当我尝试使用postman调用“post”请求时,它显示错误
传递给Illuminate\Database\Eloquent\Builder::create()的参数1必须是数组类型,给定空值,在第1374行的C:\xamppnew\htdocs\blog\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php中调用并定义
任何建议!
1条答案
按热度按时间4nkexdtk1#
这个设置对我来说很有用。你能发布你的整个堆栈跟踪吗?我也许能给予更具体的帮助。
api.php
User.php
LoginController.php
tests\Feature\UserTest.php