我从数据库中的表中检索所有行,以便将它们显示在数据表的客户端中,并使用数据和相应的操作。这是不相关的,但我使用laravel。这是我在做什么:在foreach循环中取消设置多维数组
$allItems = $model::withTrashed()->get();
$allRows = array();
foreach ($allItems as $item) {
$allRows[] = array(
$item->id,
$item->name,
$item->category->name,
$item->url,
strftime('%d-%m-%Y %H:%M', $item->updated),
'actions' => array(
'view' => array(
'href' => $this->_mainTable. '/view/' .$item->id,
),
'delete' => array(
'href' => $this->_mainTable. '/delete/' .$item->id,
'modal' => array(
'question' => 'Delete job:',
'name' => $item->name. '?',
'advice_phrase' => '',
'btn_confirm' => 'Delete',
'class_phrase' => '',
),
),
),
);
if($item->trashed()) {
unset(end($allRows)['actions']['delete']);
dd(end($allRows)['actions']);
}
}
它不给我任何错误,并在var_dum()
- >(dd(end($allRows)['actions'])
),里面如果它仍然显示的删除操作。我不明白为什么这不起作用。
你能告诉你在'$ allItems'得到什么,你所使用的laravel的版本? –
'$ allItems'是从表格中检索到的行,包括软删除的行,它工作正常。我认为这个问题并不严重,条件正常,没有解决。我正在使用laravel 5.2。 – Miguel
'unset(end($ allRows)['actions'] ['delete']);'将其更改为 '$ lastRow = end($ allRows)unset($ lastRow ['actions'] ['delete']) ;' –