問題タブ [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追加値を除外する
$appendsLaravelには、各モデルに配列を追加するオプションがあり、それぞれにアクセサーを追加することにより、追加の値をデータベース属性であるかのように自動的に使用可能にします。
これは通常、非常に便利ですが、この場合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_countfromticketitinner joinusersonusers.id=ticketit.user_idinner jointicketit_statusesonticketit_statuses.id=ticketit.status_idinner jointicketit_prioritiesonticketit_priorities.id=ticketit.priority_idinner jointicketit_categoriesonticketit_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が、これで問題が解決するわけではありません。
これを変更する必要がある他の場所を見つけることができなかったので、誰かが理由、または他に何を変更する必要があるかを理解するのを手伝ってくれますか?