前言:
现在同学们对“php代码里面的action”都比较关注,同学们都需要剖析一些“php代码里面的action”的相关内容。那么小编同时在网络上收集了一些对于“php代码里面的action””的相关知识,希望各位老铁们能喜欢,同学们一起来学习一下吧!laravel admin action操作明面上的编辑只针对当前行对应的model,如果要编辑从属的model则需要js去配合,也就是传参
自定义action继承的虚构类的基类里有个actionScript方法可重写,可用来提交额外的参数
但是直接在handle方法里是不允许直接使用$a的值的。有点像java的final ,具体的原因没搞明白。
网上查到一个 使用session传参的。有点违背编程的思想。所以就翻了下源码,尝试了三次才成功。
setAgentId方法用来赋值,但是handle方法接收不到新值。
parameters方法 是用来设置model参数的,单一作用无法重写。
// GridAction.php /** * @return array */ public function parameters() { return ['_model' => $this->getModelClass()]; }
翻找RowAction的基类Action.php 才发现actionScript方法可重写,可传参。以前也看到过这个方法,但是没发现他的具体作用。
// Action.php/** * @return mixed */ protected function addScript() { if (!is_null($this->interactor)) { return $this->interactor->addScript(); } $parameters = json_encode($this->parameters()); $script = <<<SCRIPT(function ($) { $('{$this->selector($this->selectorPrefix)}').off('{$this->event}').on('{$this->event}', function() { var data = $(this).data(); var target = $(this); Object.assign(data, {$parameters}); {$this->actionScript()} {$this->buildActionPromise()} {$this->handleActionPromise()} });})(jQuery);SCRIPT; Admin::script($script); } /** * 这个就像form,html,href等方法,允许重写 * @return string */ public function actionScript() { return ''; }
作者还是很用心的。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。