Laravel-admin: 如何自定义一个contoller的操作方法,例如导入数据

Created on 16 Nov 2017  ·  5Comments  ·  Source: z-song/laravel-admin

  • Laravel Version: 5.5
  • PHP Version: 7.1
  • Laravel-admin: 1.5

Description:

~~~
public function import()
{
return Admin::content(function (Content $content) {

        $content->header('导入用户');

        $content->body($this->importForm());
    });
}

protected function importForm()
{
    return Admin::form(User::class, function (Form $form) {
        $form->setAction('/admin/users/importAction');

        $form->file('file', '导入文件')->rules('required|mimes:xlsx');
    });
}

public function importAction()
{
    $data = Input::all();
    // 这块逻辑怎么写,
    admin_toastr('导入成功');
    return redirect('admin/users');
}

~~~

看了你里面Form Admin的源代码,貌似没有找到方法

Form里面的验证是validationMessages,但是这个方法是protected,不能调用,如果是public的话,可以按照store来写

~~~
$data = Input::all();

    // Handle validation errors.
    if ($validationMessages = $this->importForm()->validationMessages($data)) {
        return back()->withInput()->withErrors($validationMessages);
    }

    if (($response = $this->importForm()->prepare($data)) instanceof Response) {
        return $response;
    }

    DB::transaction(function () {
        // 我的逻辑
    });

    admin_toastr('导入成功');

    return redirect('admin/users');

~~~

还有其他方法吗?

Steps To Reproduce:

Most helpful comment

可以自定义,你想全都用laravel-admin的功能实现有点够呛,但在laravel-admin基础上,拓展一个导入功能完全可以,用到插件 maatwebsite/excel
view层自定义一个表单上传文件即可,后台用excle插件解读数据

All 5 comments

你要找一个excel文件解析库,读取上传过来的excel文件,得到数据之后存入数据库

这块逻辑我知道,

目前用Form生成的页面,是否可以复用Form的验证逻辑,类似下面的代码。不然就要自己再写一边验证逻辑是一个重复。目前使用下面的方法问题是,validationMessages是protected的,用不了

~~~
// Handle validation errors.
if ($validationMessages = $this->importForm()->validationMessages($data)) {
return back()->withInput()->withErrors($validationMessages);
}

    if (($response = $this->importForm()->prepare($data)) instanceof Response) {
        return $response;
    }

~~~

你只是要重用表单验证功能?

生成视图和表单验证,就这两块,逻辑肯定就自己实现了

可以自定义,你想全都用laravel-admin的功能实现有点够呛,但在laravel-admin基础上,拓展一个导入功能完全可以,用到插件 maatwebsite/excel
view层自定义一个表单上传文件即可,后台用excle插件解读数据

Was this page helpful?
0 / 5 - 0 ratings

Related issues

antranapp picture antranapp  ·  3Comments

evans-kim picture evans-kim  ·  3Comments

taimaiduc picture taimaiduc  ·  3Comments

chenyongmin picture chenyongmin  ·  3Comments

donglianyou picture donglianyou  ·  3Comments