我正在使用laravel 5.4, 我需要为' createUser'。
打开一个端点" LoginController.php"
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);
}
}
" RegisterController.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']);
&#34; user.php的&#34;
<?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',
];
}
get&#34;用户&#34;端点正在工作! 但当我试图打电话给&#34;帖子&#34;请求使用邮递员,它显示错误
&#34;传递给Illuminate \ Database \ Eloquent \ Builder :: create()的参数1必须是数组类型,给定null,在C:\ xamppnew \ htdocs \ blog \ vendor \ laravel \ framework \中调用第1374行的src \ Illuminate \ Database \ Eloquent \ Model.php并定义了&#34;
任何建议!
答案 0 :(得分:0)
此设置对我有用。你可以发布你的整个堆栈跟踪吗?我或许能够提供更具体的帮助。
api.php
Route::post('users', ['as' => 'createUser', 'uses' => 'Auth\AuthController@createUser']);
user.php的
<?php
namespace App;
class User extends \Illuminate\Foundation\Auth\User
{
}
LoginController.php
public function createUser(Request $request)
{
$this->validate($request, [
'email' => 'unique:users|email|required',
'name' => 'unique:users|required',
'position' => 'required',
]);
$user = new User();
$user->name = $request['name'];
$user->email = $request['email'];
$user->position = $request['position'];
$user->password = hash('sha512', $request['password']);
$user->save();
return response('', 201);
}
测试\特征\ UserTest.php
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class UserTest extends TestCase
{
/** @test */
public function it_can_create_a_user()
{
$response = $this->post('/users', [
'email' => 'user' . rand(0, 99999999) . '@gmail.com',
'name' => 'Billy ' . rand(0, 99999999) . ' Joel',
'position' => 'Musician',
], ['Accept' => 'application/json']);
$response->assertStatus(201);
}
}