龙空技术网

laravel admin 自定义编辑非本列表的model数据:actionScript

会动的耳朵1001 74

前言:

现在同学们对“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 '';    }

作者还是很用心的。

标签: #php代码里面的action #php action #jquerydatamodel