속성 :Laravel, Behat 및 위조자 문제는 다음 라이브러리와 내가 Laravel을 사용하고
, 그래서 내가 할 때 그것은 예상대로 작동하고 모든 속성을 최소한의 암호 표시
이제 내가 만든 모델로 함께 POST를 할 때 rm Faker 비밀번호 속성을 보낼 수 없습니다.
위조자 공장
<?php
$factory->define(App\User::class, function (Faker\Generator $faker) {
$role = App\Role::all()->random(1);
return [
'role_id' => $role->id,
'username' => $faker->userName,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'email' => $faker->safeEmail,
'password' => str_random(10),
];
});
사용자 모델
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $hidden = [ 'password' ];
/* rest of the code */
/* I have a validation rule for password to be required */
사용자 컨텍스트 기능
<?php
/**
* @When I try to save a valid user
*/
public function iTryToSaveAValidUser()
{
$modelFake = factory('App\User')->make();
$client = new GuzzleHttp\Client();
$data['data'] = $modelFake;
$res = $client->request('POST', url($this->apiURL . '/user'),[ 'json' => $data ]);
}
오류가 발생했습니다. 비밀번호가 필요합니다. 숨겨진 비밀번호 만 설정하는 방법이 있습니까?
나는 다음 코드를 사용하여이 문제를 "고정"하지만 사전에이 방법을
<?php
/**
* @When I try to save a valid user
*/
public function iTryToSaveAValidUser()
{
$modelFake = factory('App\User')->make();
$client = new GuzzleHttp\Client();
$modelArray = $modelFake->toArray();
$modelArray['password'] = str_random(10);
$data['data'] = $modelArray;
$res = $client->request('POST', url($this->apiURL . '/user'),[ 'json' => $data ]);
}
감사를 좋아하지 않아!
감사합니다 !! 나는 $ modelFake-> makeVisible ('password');를 문맥 함수에 추가하여 완벽하게 작동한다. – AgeValed