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 协议》,转载必须注明作者和本文链接
坚信技术改变世界,改变人生,改善个人生活。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

你现在的做法可以任意修改(打开 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年前 评论

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

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

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