1

基本的なExcelシートをlaravel 5.1にインポートする方法を学ぼうとしています

vname        Vservice        vphone                 vmobile
test name    test  service   test number 123232     test  mobile 12344

私は次の機能を作りました

public function ImportVlist()
{
    Excel::load('/import.xlsx', function($reader)
    {
        $results = $reader->get();
        foreach ($results as $key => $value) {
            foreach ($value as $key => $value1) {
                Vlist::create([
                    'vname'=>$value1->vname,
                    'vservice' => $value1->vservice,
                    'vphone' => $value1->vphone,
                    'vmobile' => $value1->vmobile
                ]);
            }
        }
    })->get();
}

ルートを作りました

Route::get('/vlist/import' , 'VlistsController@ImportVlist');   

インデックスに次のリンクを作成しました

<li><a href="{{ action('VlistsController@ImportVlist') }}"> <span>Import Suppliers </span></a></li>

しかし、クリックすると、Excelの横にページが見つからず、mysql dbにインポートされません

4

1 に答える 1

0

アクションされたルートは、次のように定義する必要があります。

Route::get('/vlist/import', array('as' => 'vlist.import', 'uses' => 'VlistsController@ImportVlist'));

また、controller()ヘルパーを使用することもできます:

Route::controller('vlist', 'VlistsController', ['getImportVlist' => 'vlist.import']);

次に、http-method プレフィックスを持つそのコントローラー内のすべてのメソッドは、次のようなルートにバインドされます。

public function getImportVlist()
{
    Excel::load('/import.xlsx', function($reader)
    {
        ...
    }
}

また、ルート名を介してビューで参照できます。

<li><a href="{{ route('vlist.import') }}"> <span>Import Suppliers </span></a></li>

しかし、個人的には純粋な方が好きですroutes:

Route::get('/vlist/import', ['uses' => 'VlistsController@ImportVlist', 'as' => 'vlist.import']);

そして、コントローラーとルートとビューを同期させておく必要はありません:

<li><a href="{{ route('vlist.import') }}"> <span>Import Suppliers </span></a></li>

長所:

1) ルーティングされた名前はより意味があります。

2) コントローラ メソッドの名前を変更するには、修正のみが必要routes.phpです。

3) ルートリンク/タイトル/ブレッドクラムのローカライズ/カスタマイズがより簡単になりました:

 <li><a href="{{ route('vlist.import') }}"> <span>@lang('vlist.import')</span></a></li>

vlist.en.php

<?php
    return [
        ...
        'import' => 'Import Suppliers',
        ...
    ];

vlist.ru.php

<?php
    return [
        ...
        'import' => 'Поставщики',
        ...
    ];
于 2016-02-17T10:13:16.960 に答える