问题描述
我需要替换yajra数据表供应商的功能compileQuerySearch(),但是我似乎无法正确完成...
这是原始功能
<?php
namespace Yajra\DataTables;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Illuminate\Database\Query\Builder;
use Illuminate\Database\Query\Expression;
use Illuminate\Support\Str;
use Yajra\DataTables\Utilities\Helper;
class QueryDataTable extends DataTableAbstract
{
// [...]
protected function compileQuerySearch($query,$column,$keyword,$boolean = 'or')
{
$column = $this->addTablePrefix($query,$column);
$column = $this->castColumn($column);
$sql = $column . ' LIKE ?';
if ($this->config->isCaseInsensitive()) {
$sql = 'LOWER(' . $column . ') LIKE ?';
}
$query->{$boolean . 'WhereRaw'}($sql,[$this->prepareKeyword($keyword)]);
}
// [...]
}
我需要替换为:
<?php
namespace App\Http\yajra; // Changed this line
use Illuminate\Support\Str;
use Illuminate\Database\Query\Builder;
use Yajra\DataTables\Utilities\Helper;
use Yajra\DataTables\DataTableAbstract; // Changed this line
use Illuminate\Database\Query\Expression;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
class QueryDataTable extends DataTableAbstract
{
//[...]
protected function compileQuerySearch($query,$boolean = 'or')
{
if ($column!="transaction_date" && $column!="settlement_date"){ // Changed this line
$column = $this->addTablePrefix($query,$column);
$column = $this->castColumn($column);
$sql = $column . ' LIKE ?';
if ($this->config->isCaseInsensitive()) {
$sql = 'LOWER(' . $column . ') LIKE ?';
}
$query->{$boolean . 'WhereRaw'}($sql,[$this->prepareKeyword($keyword)]);
} // Changed this line
}
//[...]
}
原始文件位于
\ vendor \ yajra \ laravel-datatables-oracle \ src \ QueryDataTable.php
我的文件位于
\ app \ Http \ yajra \ QueryDataTable.php
我尝试将文件从作曲家中排除,然后将其添加到psr-4中
"autoload": {
"exclude-from-classmap": ["vendor/yajra/laravel-datatables-oracle/src/QueryDataTable.php"],"psr-4": {
"App\\": "app/","yajra\\": "app/Http/yajra"
},"classmap": [
"database/seeds","database/factories"
]
},
那我当然跑了composer dump auto-load
但是由于某种原因,它总是加载原始类,而放弃了我的版本。 为了确认这一点,我在类的顶部添加了一个dd(“ Please crash”),以查看它是否加载了我的版本而不是原始版本......不幸的是,它没有崩溃...所以我的类不是加载的。 (第一次我实际上想让某些东西崩溃非常大声笑)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)