因为新项目要用laravel,还要自己写后台,在此记录下踩到的坑。
因为laravel-admin封装的太好了,所以很多定制化的功能实现起来真的挺麻烦的。
这次的背景情况:有一个数据表head,记录主体信息,然后下面还有line,记录主体信息的子信息
需求:创建head之后,直接跳转到该head所属line的界面,(用于直接创建)。
问题:因为form表单的saved判断或者submitted判断都是数据提交后来做处理(创建时的提交,或者编辑时的提交是没有区分的)。
解决方法:先贴代码
$form->saved(function (Form $form) {
$id = $form->model()->id;
// 跳转页面
if ($form->model()->created_at == $form->model()->updated_at) {
return redirect('/admin/po-system/po-heads/'. $id . '/polines');
}
});
PS:重定向的就不解释拉,自己写个路由就好了
原理:我一直解决不了,突然灵光一现,就去研究了创建后model中数据的差别,还有edit之后数据的差别,因为我设置了update的时间戳,每次edit之后这个时间戳都会变(不管数据有没有变化),所以就会导致created_ad和updated_at时间戳不一致,就能轻松判断拉!