问题标签 [laravel-datatables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Laravel,数据表,具有关系计数的列
我有两个模型,User
并且Training
,它们之间有Many to many
关系。我正在使用Laravel Datatables包来显示所有用户的表格。数据控制器方法(检索查询结果并创建 Datatables 表)如下所示:
如何在创建的表中添加一列,显示每个用户的关系总数(即每个用户有多少Training
s User
)?
php - 排除 Laravel 会附加模型结果中的值
Laravel 可以选择为每个模型添加一个$appends
数组,通过为每个模型添加访问器,使附加值自动可用,就好像它们是数据库属性一样。
这通常非常方便,但在这种情况下,我只需要获取我输入的字段,select()
因为 DataTables 只期待我发送给它的内容。
例子:
color
将在属性之后返回附加字段。
返回结果时如何强制排除附加值?
或者,如何让 DataTables 忽略某些属性?
不确定哪个是时间成本最低的路线。
目前使用yajra/laravel-datatables
包向 jQuery DataTables AJAX 请求发送数据。
php - 使用名称而不是用户名的数据表查询
我有一个项目,我们不存储用户的名称,而只使用他们的用户名进行所有操作。
我发现了一个名为Ticketit的包,它是 Laravel 的帮助台票务系统。
该软件包对所有内容都使用用户名,因此这导致了一些错误。我的模型上有一个getNameAttribute()
访问器User
,因此在大多数情况下这满足了包,但是有些地方name
在 Eloquent::lists()
查询中显式调用。
对于这些,我在我自己的这个 repo 的 fork 中手动替换name
,并将其链接到我的项目。username
数据表在页面上按预期加载,但是当我尝试按任何其他列排序或在其中运行搜索时,我在开发人员工具的“网络”选项卡中收到 500 个错误。
预览响应显示:
Connection.php 第 662 行中的 QueryException:SQLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列 'users.name'(SQL:选择计数(*)作为聚合来自(
row_count
从ticketit
内部连接中选择 '1'users
onusers
.id
=ticketit
.user_id
inner jointicketit_statuses
onticketit_statuses
.id
=ticketit
.status_id
inner jointicketit_priorities
onticketit_priorities
.id
=ticketit
.priority_id
inner jointicketit_categories
onticketit_categories
.id
=ticketit
.category_id
wherecompleted_at
is null and (LOWER(ticketit
.id
) LIKE %%h%% or LOWER(subject
) LIKE %%h%% or LOWER(ticketit_statuses
.name
) LIKE %%h%% 或 LOWER(ticketit
.updated_at
) LIKE %%h%% 或 LOWER(users
.name
) LIKE %%h%% 或 LOWER(ticketit_priorities
.name
) LIKE %%h%% 或 LOWER(users
.name
) LIKE %%h%% 或 LOWER(ticketit_categories
.name
) LIKE %%h%%)) count_row_table)
按照这篇文章的路线,我到达TicketController@data
. 在原始包中,这是:
我在我的叉子中对此进行了编辑:
有了这个,我将其更改users.name
为users.username
,但这并不能解决我的问题。
谁能帮我弄清楚为什么,或者我还需要改变什么,因为我没有运气弄清楚我还需要在哪里改变它。
laravel - Laravel oneToMany accessor usage in eloquent and datatables
On my User model I have the following:
The accounting table has activity records and I'd like this to return the latest value for field 'rtype' for a userid when used.
In my controller I am doing the following:
However I don't get the value of 'rtype' for the users in the table and no errors.
javascript - Laravel:按显示的数据或枚举排序和搜索,而不是按数据库表
我正在使用 Laravel 5.6 和 yajira 数据表插件。
我想在其中一列中显示用户状态,该列是数据库中从 0-5 的数字,但我想在列中显示并显示为单词(新、更新、初始等)
制作数据表的方法:
如您所见,status
返回的$user->status_name
是我的用户模型上的访问器方法:
UserStatus Enum 类具有从数字到字符串的状态转换逻辑:
在视图中,我通过 jQuery Ajax 和数据表获取数据,我在视图中的代码如下:
现在,由于name:user.status
搜索和排序将基于user.status
仅是数字的列。有没有办法强制它使用显示的数据进行搜索和排序?请指出我正确的方向。
php - Laravel DataTables 服务实现和连接
无法弄清楚简单的任务:加入 1 个表并添加列。这里没有关于服务实现的有用文档:DataTables as a Service Implementation
以上会触发奇怪的错误
尝试了许多变体,例如:
以上会触发Column 'id' in field list is ambiguous
另一个是:
这将导致:strtolower() expects parameter 1 to be string, array given
等等等等。也许有人可以给出使用服务实现的基本连接示例?
系统详情
- 操作系统 OSX
- PHP 版本 7.2
- Laravel 5.5 版
- Laravel 数据表 8.0 版
更新#1
这个接缝最接近工作解决方案:
和
但我越来越Requested unknown parameter 'technika.id' for row 0, column 0.
但是 XHR 响应接缝没问题,我可以看到来自后端的正确数据。
php - 为什么我的 DataTables 不能正常工作?
我在这个包中使用 Laravel 5.5 https://github.com/yajra/laravel-datatables 我在浏览器选项卡而不是表格上得到以下响应。没有数据表功能,页面加载完美的静态内容。谁能指出我的片段中缺少什么?
127.0.0.1:8000/产品
网页.php
产品控制器.php
产品.php
资源/视图/产品/index.blade.php
json - Laravel DataTables JSON 列转义字符
尝试使用 Yajra DataTables 作为服务实现,这是我的问题:
我有 JSON 列metas
,我根据该列内的字段构建表列,例如:
[ 'data' => 'date', 'name' => 'metas->date AS date', 'title' => 'Data' ],
所以在metas里面我有:
当我尝试将此返回给 DataTable 时,它会留下配额,或者用反斜杠转义它。所以输出看起来像:
"Something"
或者"Something \"mmm?\ whatever!"
but 应该是 jus Something
。
尝试过->escapeColumns(false)
,->rawColumns(['date'])
还有->rawColumns(['metas->date'])
更多...
响应如下所示:
正如你所看到的,我在日期附近有额外的报价:通常,如果我使用 ->toJson() 从数据库返回相同的数据,就不会有问题。DataTables 解码有问题。
elasticsearch - 在 Laravel v5.6 上将过滤后的数据传递给 Datatables v8
我通过弹性搜索与 laravel 数据表集成。对于以前的版本,此代码正在解决问题。
现在使用新版本的数据表 (v8),collectionEngine 的构造函数已更改,不再接收请求的第二个参数,并且 Yajra\DataTables\Request 类也已删除
仍在寻找解决方案,但没有成功。我怎样才能像以前一样进行这种集成。