我有一个输入很多的表格。为了组织请求,输入具有不同的数组。例如,这里有一些输入字段:
<input id="title" type="text" class="form-control" name="company[title]" required>
<input id="foundingYear" type="text" class="form-control" data-format="date" name="company[foundingYear]" required>
<input id="phone" type="number" class="form-control" name="entrepreneur[phone]" required>
每个模型都有一个名为shortEdit
的函数,基本上看起来像这样:
public function shortEdit($request)
{
$request->has('street') ? $this->street = clean($request->street) : null;
$request->has('housenumber') ? $this->housenumber = clean($request->housenumber) : null;
$request->has('city') ? $this->city = clean($request->city) : null;
$request->has('country') ? $this->country = clean($request->country) : null;
$request->has('phone') ? $this->phone = clean($request->phone) : null;
$request->has('email') ? $this->email = clean($request->email) : null;
$request->has('facebook') ? $this->facebook = clean($request->facebook) : null;
$request->has('twitter') ? $this->twitter = clean($request->twitter) : null;
...
}
现在我想我可以像这样调用此函数,从而将我的控制器添加进去
public function store(Request $request) {
...
$company->shortEdit($request->company);
$entrepreneur->shortEdit($request->entrepreneur);
}
如果我只用shortEdit
调用$request
函数,它们就完美地工作了,并且在请求中仅是模型的东西。
但是,如果我通过数组调用它们,则可以应用于请求的所有函数(例如$request->has()
)将无法使用。因此,我认为是否可以将请求拆分为新请求,然后使用它们调用shortEdit
函数?
答案 0 :(得分:0)
请注意,如果要使用数组调用它们,则必须采用这种方式
$request->has('array_name.*');
星号表示数组中的所有项目,或者如果您知道键,则可以通过这种方式完成
$request->has('array_name.key_name');
但是如果您想拆分请求,可以通过创建一个像这样的新请求对象
$request2 = new Request([
'key_name'=>'value',
'another_keyname'=>'value',
]);
希望有帮助。
答案 1 :(得分:0)
经过一些测试,我找到了一个可行的解决方案:
如果shortEdit
是一个数组,我只需要检入每个$request
函数。如果是这样,我将使用该数组创建一个新请求:
if(is_array($request)) {
$request = new Request($request);
}
现在我可以应$request
的要求工作。