Laravel factory define (定義) 時參照當下其它欄位
假設
- mode
MyJob
- mode
CoWorker
其中 MyJob 所含欄位為
id - int
co_worker_id - int
co_worker_name - varchar
其中 CoWorker 所含欄位為
id - int
name - varchar
可以透過 closure function,取得當下其它欄位的值做為參照
以下範例在建立 co_worker_name
內容時透過 closure 取得 co_worker_id
值
$factory->define(
MyJob::class,
function () {
return [
'co_worker_id' => factory(CoWorker::class),
'co_worker_name' => function (array $myJob) {
return CoWorker::find($myJob['co_worker_id'])->name;
},
];
}
);
當然,可以在 define 的 return 前
先把 factory(CoWorker::class) 賦值後再處理;不過在特定情況下,是需要上述方式處理的