laravel-datatables-html icon indicating copy to clipboard operation
laravel-datatables-html copied to clipboard

Apply camelCase to assumed column name attrib if it contains relation

Open fmcd opened this issue 5 years ago • 0 comments

When database columns contain values that include a relation with snake case, e.g. "child_table.column", and the Eloquent model has the relation named using the Laravel default of camel case (e.g. childTable ).. the datatable global search will fail because the search query builder fails to find "child_table" within the EagerLoads for the model as it is named in the EagerLoad array as "childTable", leading to SQL query failure because the query does not add the required sub-query.

The docs at https://datatables.yajrabox.com/eloquent/relationships note this can be avoided by explicitly specifying the name attribute separately from the value, but this PR offers that the column building routine should assume camelCase for relations when no name attribute is explicitly specified in the columns array, as the majority of projects probably will follow that convention.

fmcd avatar Feb 21 '20 17:02 fmcd