laravel-admin发布菜谱记录发布人uid使用$form隐藏input实现

想了很久想到这么一个办法,小伙伴们如果有更好的想法可以分享给我奥
代码如下:

//FoodController.php
protected function form()
{
  $form = new Form(new CookFoods());

  $form->display('id', __('ID'));
  $form->hidden('dining_hall_id','食堂ID')->value(auth()->user()->id);
  $form->hidden('operator_id','操作员ID')->value(0);
  $form->text('food_name','菜名');
  $form->textarea('description','描述');
  $form->text('tags','标签');
  $form->display('created_at', __('Created At'));
  $form->display('updated_at', __('Updated At'));
  return $form;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
坚信技术改变世界,改变人生,改善个人生活。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 3

可以使用监听器实现,在创建的时候录入登录用户id,也可以在saving的时候处理

1年前 评论
fengzb (楼主) 1年前

你现在的做法可以任意修改(打开 F12 修改), 我个人更倾向于这种做法,

//FoodController.php
protected function form()
{
  $form = new Form(new CookFoods());

  $form->display('id', __('ID'));
  $form->hidden('dining_hall_id','食堂ID')->value(auth()->user()->id);
  // $form->hidden('operator_id','操作员ID')->value(0);
  $form->text('food_name','菜名');
  $form->textarea('description','描述');
  $form->text('tags','标签');
  $form->display('created_at', __('Created At'));
  $form->display('updated_at', __('Updated At'));

  $form->saving(function() {
      $form->operator_id = data_get(Admin::user(), 'id');
  });
  return $form;
}
1年前 评论

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