FormCreator.php
1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
namespace Dcat\Admin\Scaffold;
trait FormCreator
{
/**
* @param string $primaryKey
* @param array $fields
* @param bool $timestamps
* @return string
*/
protected function generateForm(string $primaryKey = null, array $fields = [], $timestamps = null)
{
$primaryKey = $primaryKey ?: request('primary_key', 'id');
$fields = $fields ?: request('fields', []);
$timestamps = $timestamps === null ? request('timestamps') : $timestamps;
$rows = [
<<<EOF
\$form->display('{$primaryKey}');
EOF
];
foreach ($fields as $field) {
if (empty($field['name'])) {
continue;
}
if ($field['name'] == $primaryKey) {
continue;
}
$rows[] = " \$form->text('{$field['name']}');";
}
if ($timestamps) {
$rows[] = <<<'EOF'
$form->display('created_at');
$form->display('updated_at');
EOF;
}
return implode("\n", $rows);
}
}