- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 PHP 7、Laravel 5.8、Maatwebsite Excel 3.1 导出到 excel。我成功地在 View Blade 上显示并执行过滤器。
模型:
使用 App\UserResponse;
Controller
public function userresponseReport(Request $request,$export=false)
{
$data['title'] = 'User Response';
$userresponses = DB::table('user_response as g')
->select(
//DB::raw('DATE(g.created_at) as created_date'),
DB::raw('g.created_at as created_date'),
'g.msisdn',
'g.game_code',
'g.answer',
'g.answer_code',
'g.Amount_charged',
'g.payment_ref',
'g.status',
'g.user_channel'
)
->orderByRaw('g.created_at DESC');
$start_date = $request->start_date;
$end_date = $request->end_date;
$render=[];
if(isset($request->start_date) && isset($request->end_date))
{
$userresponses=$userresponses->whereBetween('created_at',[$start_date.' 00:00:00',$end_date.' 23:59:59']);
$render['start_date']=$request->start_date;
$render['end_date']=$request->end_date;
}elseif(isset($request->start_date))
{
$userresponses=$userresponses->where('created_at',$request->start_date);
$render['start_date']=$request->start_date;
}
if(isset($request->msisdn))
{
$userresponses=$userresponses->where('msisdn','like','%'.$request->msisdn.'%');
$render['msisdn']=$request->msisdn;
}
if(isset($request->game_code))
{
$userresponses=$userresponses->where('game_code','like','%'.$request->game_code.'%');
$render['game_code']=$request->game_code;
}
if(isset($request->user_channel))
{
$userresponses=$userresponses->where('user_channel','like','%'.$request->user_channel.'%');
$render['user_channel']=$request->user_channel;
}
if(!empty($export))
{
return Excel::download(new UserresponseExport($userresponses->get()), 'userresponse.xlsx');
}
$userresponses= $userresponses->orderBy('created_at','DESC');
$userresponses= $userresponses->paginate(15);
$userresponses= $userresponses->appends($render);
$data['userresponses'] = $userresponses;
return view('report.userresponseReport',$data);
}
<div class="row" style="margin-bottom: 10px">
{{ Form::model(request(),['method'=>'get']) }}
<div class="col-sm-2">
{{ Form::text('msisdn',null,['class'=>'form-control','placeholder'=>'MSISDN']) }}
</div>
<div class="col-sm-2">
{{ Form::text('game_code',null,['class'=>'form-control','placeholder'=>'Game Code']) }}
</div>
<div class="col-sm-2">
{{ Form::text('user_channel',null,['class'=>'form-control','placeholder'=>'Channel']) }}
</div>
<div class="col-sm-2">
{{ Form::date('start_date',null,['class'=>'form-control','placeholder'=>'Date']) }}
</div>
<div class="col-sm-2">
{{ Form::date('end_date',null,['class'=>'form-control','placeholder'=>'Date']) }}
</div>
<div class="col-xs-2">
{{ Form::submit('Search',['class'=>'btn btn-warning']) }}
<a href="{{ route('userresponseReport',['export']) }}" class="btn btn-primary"><i class="fa fa-file-excel-o"></i> Excel</a>
</div>
{{ Form::close() }}
</div>
<div class="box box-primary">
<div class="box-header with-border">
<table class="table table-bordered table-hover table-striped table-condesed" id="commenter_info_table">
<caption></caption>
<thead>
<tr>
<td>#</td>
<td>Date</td>
<td>MSISDN</td>
<td>Game Code</td>
<td>Game Name</td>
<td>Answer</td>
<td>Channel</td>
</tr>
</thead>
<tbody>
@foreach($userresponses as $key => $userresponse)
<tr>
<td>{{ ++$key }}</td>
<!-- <td>{{ $userresponse->created_date }}</td>-->
<td>{{ date('Y-m-d h:i:s A', strtotime($userresponse->created_date)) }}</td>
<td>{{ $userresponse->msisdn }}</td>
<td>{{ $userresponse->game_code }}</td>
<td>
@if($userresponse->game_code=='101')
Trivia
@elseif($userresponse->game_code=='102')
Predict and Win
@elseif($userresponse->game_code=='103')
Party With the BBN
@elseif($userresponse->game_code=='104')
Grand Prize
@elseif($userresponse->game_code=='105')
Happy Hour
@elseif($userresponse->game_code=='106')
Power Boost
@endif
</td>
<td>{{ $userresponse->answer }}</td>
<td>{{ $userresponse->user_channel }}</td>
</tr>
@endforeach
<tr>
<td colspan="14">
{{ $userresponses->links() }}
</td>
</tr>
</tbody>
</table>
class UserresponseExport implements FromView, WithHeadings, ShouldAutoSize, WithEvents, WithMapping
{
protected $userresponses;
public function __construct($userresponses = null)
{
$this->userresponses = $userresponses;
}
public function view(): View
{
return view('report.userresponseReport', [
'userresponses' => $this->userresponses ?: DB::table('user_response as g')
->select(
DB::raw('g.created_at as created_date'),
'g.msisdn',
'g.game_code',
'g.answer',
'g.answer_code',
'g.Amount_charged',
'g.payment_ref',
'g.status',
'g.user_channel'
)
->orderByRaw('g.created_at DESC')
]);
}
private $headings = [
'Date Created',
'MSISDN',
'game_code',
'Answer',
'Channel'
];
public function headings(): array
{
return $this->headings;
}
public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
$cellRange = 'A1:E1'; // All headers
$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
},
];
}
}
Route::get('/report/userresponse-report/{export?}', ['as' => 'userresponseReport', 'uses' => 'ReportController@userresponseReport']);
Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_UNKNOWN) Declaration of App\Exports\UserresponseExport::view(): App\Exports\View must be compatible with Maatwebsite\Excel\Concerns\FromView::view(): Illuminate\Contracts\View\View
最佳答案
此错误表示您的类 App\Exports\UserresponseExport
未正确遵循界面。
通过错误我们可以看到您需要一个名为 view
的方法你有,但你的方法有类型提示 App\Exports\View
作为返回类型而不是 Illuminate\Contracts\View\View
.
要解决此问题,只需更改您的 view
方法返回类型为 Illuminate\Contracts\View\View
.
你现在的代码很可能说
public function view(): View
{
...
}
use Illuminate\Contracts\View\View;
在您的导入语句中,
View
正在解析为您的类的当前命名空间 + 您试图键入提示的类,这导致
App\Exports\View
.
Illuminate\Contracts\View\View
, 在你的类(class)中加入
use Illuminate\Contracts\View\View;
在文件的顶部。
关于Laravel - 错误:App\Exports\View 必须与 Maatwebsite\Excel\Concerns\FromView::view(): Illuminate\Contracts\View\View 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57249864/
我担心存储常量的位置: module Group::Constants extend ActiveSupport::Concern MEMBERSHIP_STATUSES = %w(accep
我编写了一个生成器,它为用户创建了一个关注点,以包含在他们的模型中。它在 Rails 4.1.8 上正常工作,但在 Rails 4.2.0 上,我收到以下消息: LoadError: Unable t
单一职责原则和关注点分离有什么区别? 最佳答案 Single Responsibility Principle (SRP)- give each class just one reason to ch
我担心 Windows Azure 上的数据和应用程序的安全性...我在一本书上读到 Windows azure 通过服务级别协议(protocol)提供安全性。 谁能告诉我使用什么类型的身份验证机制
我需要在我的项目中处理大约 120 个图像和 120 个音频文件。我将所有图像放在 drawable 中,并将音频文件放在 raw 文件夹中,图像应通过单击按钮或滑动手势进行更改,同时应播放相应的短音
在另一个问题中,有人告诉我在我的java程序中实现以下内容。但是,我是 Java 的新手,我不知道如何开始将我的简单程序转换成这种结构: Data Access Layer (read/write d
我正在研究 CodeSchool 的 RubyBits,我做了一个我只是不理解的练习:“确保 AtariLibrary 类只包含 LibraryUtils 模块,并让 ActiveSupport::C
我知道 include 用于将模块方法作为实例方法访问,而 extend 用于将模块方法作为类方法访问。 对于 ActiveSupport::Concern 某处我看到写成, module Test
我正在尝试在不同的 Rails 项目中扩展现有的关注点。 该模块存在于我需要的 gem 中: module Foo extend ActiveSupport::Concern included
我得到了下面的链接来解决与类和实例方法相关的问题。 http://www.fakingfantastic.com/2010/09/20/concerning-yourself-with-active-
简短问题 1 Django's documentation 中定义的生产环境由什么构成大约 1/2 的路程? 简短问题 2 如果多人同时访问数据库,是否有管理界面损坏数据库的记录案例? 背景 我已使用
所以对于我的应用程序,当我点击运行时 iOS 模拟器中的 tableview 布局是正确的并且符合我的预期。然而,当我在 Main.storyboard 中查看 tableview 的布局时,布局并不
我正在使用 EF,想知道其他人如何将数据上下文与实体分开。 基本上我需要一层来访问数据上下文(模型对象)以调用 SaveChanges() 等。其他层需要访问实体类型本身。因此,例如,如果一个方法返回
考虑以下代码: require 'active_support/concern' module Inner end module Outer extend ActiveSupport::Conce
有an article在 ActiveSupport::Concern钩子(Hook)。这是 Rails 中的一个有效实现: module ActionController class Base
release notes iOS 10 有一个名为Wide Color 的部分。 让我感到困惑的是这一行:如果您的应用依赖 UIKit 来限制组件值(无论您是创建颜色还是为其组件值请求颜色),您需要
我有一些模型在其他路径上共享相同的功能。所以我决定将这些方法放在一个模块中,并在模型中设置路径。我的问题是我无法访问我的模块中的属性。 型号: class Job 在这一行: File.open(R
我正在尝试用大量数据替换 SSRS 报告中字段中的文本。以下是否有任何性能问题? =iif(Fields!Field1.Value="Word 1", "Word 2", Fields!Field1.
注意:在您考虑将此问题标记为其他类似问题的重复之前,请注意这个问题是关于 Rails 中的问题,而我搜索过的其他问题涉及 Controller 。毫无疑问,我已经发现,这涉及到关注。 我在 app/m
我从来不明白为什么必须使用 ActiveSupport::Concern 用于 mixins 而不是普通模块。对于 ActiveSupport::Concern 提供的内容(至少在 Rails 5 中
我是一名优秀的程序员,十分优秀!