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