問題タブ [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、Datatables、リレーション数を含む列
と の 2 つのモデルがUser
ありTraining
、Many to many
それらの間に関係があります。Laravel Datatablesパッケージを使用して、すべてのユーザーのテーブルを表示しています。データ コントローラー メソッド (クエリ結果を取得し、Datatables テーブルを作成する) は次のようになります。
作成されたテーブルに、各ユーザーのリレーションの総数 (つまり、各ユーザーTraining
がUser
持っている の数) を表示する列を追加するにはどうすればよいですか?
php - モデル結果からLaravel追加値を除外する
$appends
Laravelには、各モデルに配列を追加するオプションがあり、それぞれにアクセサーを追加することにより、追加の値をデータベース属性であるかのように自動的に使用可能にします。
これは通常、非常に便利ですが、この場合select()
、DataTables は私が送信したものだけを期待しているため、入力したフィールドのみを取得する必要があります。
例:
color
属性の後に追加されたフィールドを返します。
結果を返すときに追加値を強制的に除外するにはどうすればよいですか?
あるいは、DataTables が特定の属性を無視するようにするにはどうすればよいですか?
どれが最も時間がかからないルートかはわかりません。
現在、yajra/laravel-datatables
パッケージを使用してデータを jQuery DataTables AJAX リクエストに送信しています。
php - ユーザー名ではなく名前を使用したデータテーブル クエリ
ユーザーの名前を保存せず、すべてにユーザー名を使用するプロジェクトがあります。
Laravel のヘルプデスク チケット システムであるTicketitというパッケージに出会いました。
パッケージはすべてにユーザーの名前を使用するため、いくつかのエラーが発生しました。私はgetNameAttribute()
自分のモデルにアクセサーを持っているので、ほとんどの場合、これはパッケージを満たしていますが、EloquentクエリUser
で明示的に呼び出される場所がいくつかありました。name
::lists()
これらについては、このレポの自分のフォーク内で手動で置き換えname
、これをプロジェクトにリンクしました。username
データテーブルは期待どおりにページに読み込まれますが、他の列で並べ替えたり、その中で検索を実行しようとすると、開発者ツールの [ネットワーク] タブに 500 エラーが表示されます。
応答をプレビューすると、次のようになります。
Connection.php 行 662 の QueryException: SQLSTATE[42S22]: 列が見つかりません: 1054 Unknown column 'users.name' in 'where clause' (SQL: select count(*) as aggregate from (select '1' as
row_count
fromticketit
inner joinusers
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
ここで、completed_at
は null かつ (LOWER(ticketit
.id
) LIKE %%h%% または LOWER(subject
) LIKE %%h%% または 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
が、これで問題が解決するわけではありません。
これを変更する必要がある他の場所を見つけることができなかったので、誰かが理由、または他に何を変更する必要があるかを理解するのを手伝ってくれますか?