0
我使用Laravel與以下庫:與隱藏Laravel,貝哈特&法克爾問題屬性
在用戶模式我有密碼隱藏屬性,所以當我做一個GET它的工作如預期,顯示所有屬性最少密碼
現在,當我做一個與模型創建一個POST fo rm Faker我無法發送Password屬性。
法克爾廠
<?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 ]);
}
的我得到的錯誤是需要密碼,有一種方法可以在GET上設置隱藏?
我「固定」用下面的代碼這個問題,但我不喜歡這樣
<?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 ]);
}
提前感謝!
Thanks!我添加了'$ modelFake-> makeVisible('password');'進入上下文函數並完美工作! – AgeValed