Laravel-admin hasMany 获取 model 属性

laravel-admin hasMany获取model属性

form表单中hasmany如何拿到关联数据 做一些特别的渲染
比如说我想拿goods_id, 一般的表单是$form->model()->goods_id,
但是这里dd()出来的是null,其他方法也试过了只能拿到所有的关联数组,拿不到当前表单的数据
区分不了这个表单的是哪个

    return Admin::form(ShopOrder::class, function (Form $form) use ($id){
        $form->hasMany('order_goods', '添加商品', function (Form\NestedForm $form) use ($id){
            dd($form->model());
            $form->select('goods_id', '选择商品')->options(ShopGoods::pluck('goods_name', 'id'))
                ->rules('required')
                ->help('必填')
                ->load('goods_specifition_name_value', '/api/project_json/sku');
            $form->select('goods_specifition_name_value')->options();
            $form->number('number', '数量')->rules('required')->default(1)->help('必填');
        });
    });
这个超级宇宙无敌菜的实习生
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

hasMany 中 select改成listbox或者multipleSelect 怎么用呢?

3年前 评论
wwolf

的确有这个问题存在,我也是希望在 $form->hasmany() 里面对数据做二次处理。在 hasmany 的 function() 里面, 一直拿不到该行对应的model()。

....
$form->hasMany('commodities', '批次', function(Form\NestedForm $ntForm) use ($form){
    // 可以拿到上一级的 form model()
    $tmp_commodity = Commodities::find($form->model()->commodity_id);

   // 这一行对应的 mode(), 就是拿不到, 不能确认当前是哪一行数据
   var_dump($ntForm->model()); // 输出为 NULL

  //  表单这一行是可以正常显示的, 我只是希望在程序中能拿到当前的godown_entry_order_id而已,但就是没办法
  $ntForm->text('godown_entry_order_id',' 批次ID');  // 我就是要这一行中的 godown_entry_order_id 值

  // 下面的可以正常显示
   $ntForm->text('custom_title_test','商品名称')->default($tmp_commodity->title)->readonly();
   $ntForm->text('quantity','出库数量')->readonly();
 })->disableCreate()->disableDelete()->readonly();
....
1年前 评论
dozzk 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!