![](/img/trans.png)
[英]I would like to style the color of a button to primary if the selected button value equals to any of the `key` of an object
[英]I would like to seperate value and key from array
我想從該數組(PHP Laravel)中獲取id和parent_id的值來更新數據庫。
stdClass Object( [item_id] => [parent_id] => [depth] => 0 [left] => 1 [right] => 12)
stdClass Object( [id] => 1 [parent_id] => [depth] => 0 [left] => 2 [right] => 3)
stdClass Object( [id] => 2 [parent_id] => [depth] => 0 [left] => 4 [right] => 5)
stdClass Object( [id] => 4 [parent_id] => [depth] => 0 [left] => 6 [right] => 7)
stdClass Object( [id] => 5 [parent_id] => [depth] => 0 [left] => 8 [right] => 11)
stdClass Object( [id] => 6 [parent_id] => 5 [depth] => 1 [left] => 9 [right] => 10)
控制器:
public function updatemenusort(Request $request)
{
$menus=json_decode($request->input('menu'));
foreach($menus as $menu)
{
print_r($menu);
}
}
視圖中的ajax:
$('#toArray').click(function (e) {
arraied = $('ol.sortable').nestedSortable('toArray', {startDepthCount: 0});
//arraied = dump(arraied);
arraied = JSON.stringify(arraied);
// ajax strt
alert(arraied);
$.ajax({
type: 'POST',
url: "{{url('menus/sortmenu')}}",
dataType: 'json',
data: {'menu': arraied, '_token': _token},
success: function (data) {},
error: function (data) {}
});
});
我正在嘗試使用此插件來創建可拖動和可排序的菜單。
上面的數組是我的控制器的(print_r($menu);)
的輸出。
您已經遍歷了對象數組,因此現在將$menu
設置為單個對象實例。
因此,只需將數據作為對象及其屬性進行訪問。
public function updatemenusort(Request $request)
{
$menus=json_decode($request->input('menu'));
foreach($menus as $menu)
{
echo $menu->id;
if ( isset($menu->parent_id) {
echo $menu->parent_id;
} else {
echo 'No parent Id';
}
// etc etc
// In your case I assume you would want to
// build a query here and not just echo data,
// but thats just a FLOC
}
}
這可能對您有幫助
public function updatemenusort(Request $request)
{
foreach($request->menu as $menu)
{
// if you are finding by id
$model = ModelName::find($menu['id']); // can use findOrFail()
// checking if not null
if (!is_null($model)) { // remove if using findOrFail()
$model->id = $menu['id'];
$model->parent_id = $menu['parent_id'];
$model->save();
}
/*---------------------or---------------------*/
// creating new but here you might get duplicate id error
$model = new ModelName;
$model->id = $menu['id'];
$model->parent_id = $menu['parent_id'];
$model->save();
}
}
先前的建議與以上無關
您可以array_column()
使用array_column()
。 如果要在新數組中使用id
和parent_id
。
例如
$ids = array_column($menus, 'id'); // for id
$parentId = array_column($menus, 'parent_id'); // for parent id
建議
我不知道你為什么要使用arraied = JSON.stringify(arraied);
只是按原樣傳遞對象並在控制器中
//$menus=json_decode($request->input('menu')); // no need to use json_decode() if you are doing to get as object then you can do like
$menus= $request->input('menu');
foreach($menus as $menu)
{
$menu = (object) $menu; // you can cast here
print_r($menu);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.