I have more than one table. How can i only using one model and controller to export the different tables contents?
Model:
class TestModel extends Model
{
protected $table = 'posts';
protected $fillable = ['title', 'content'];
}
Controller:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\ServiceProvider;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\TestModel;
//use App\Excel;
use Excel;
class ExportController extends Controller
{
public function index($type)
{
$data = TestModel::get(['title', 'content'])->toArray();
return Excel::create('Post Record', function ($excel) use ($data) {
$excel->sheet('mySheet', function ($sheet) use ($data) {
$sheet->fromArray($data);
});
})->download($type);
}
}
Just directly export from your controller using DB class
class ExportController extends Controller {
public function index($type) {
$data = TestModel::get(['title', 'content'])->toArray();
return Excel::create('Post Record', function ($excel) use ($data) {
$excel->sheet('mySheet', function ($sheet) use ($data) { $sheet->fromArray($data); });
})->download($type);
$data2 = DB::table('your_second_table_name')->get(['title', 'content'])->toArray();
return Excel::create('Post Record', function ($excel) use ($data2) {
$excel->sheet('mySheet', function ($sheet) use ($data2) { $sheet->fromArray($data2); }); })->download($type);
}
}