Closed sergyu91ma closed 1 year ago
Hello,
Versions i use: "spatie/laravel-query-builder": "5.0.3", "laravel/framework": "9.37.0",
Code:
$products = QueryBuilder::for(Product::class)->allowedFields( 'importer','name' )->limit(6)->get();
In telescope query for the above code is: select * from products limit 6
products
which selects all fields and returns them and i don't want this of course. I want only importer and name to be selected.
Shouldn't query be (at least this is whats i saw in docs): SELECT 'importer','name' FROM products LIMIT 6 ?
SELECT 'importer','name' FROM products LIMIT 6
I debugged a little and got into this:
` //File -> vendor/spatie/laravel-query-builder/src/Concerns/AddsFieldsToQuery.php protected function addRequestedModelFieldsToQuery() { $modelTableName = $this->getModel()->getTable();
$modelFields = $this->request->fields()->get($modelTableName); if (empty($modelFields)) { // -> HERE modelFields is NULL return; } $prependedFields = $this->prependFieldsWithTableName($modelFields, $modelTableName); $this->select($prependedFields);
}`
@sergyu91ma Could you provide a curl of your HTTP request?
Hello,
Versions i use: "spatie/laravel-query-builder": "5.0.3", "laravel/framework": "9.37.0",
Code:
$products = QueryBuilder::for(Product::class)->allowedFields( 'importer','name' )->limit(6)->get();
In telescope query for the above code is: select * from
products
limit 6which selects all fields and returns them and i don't want this of course. I want only importer and name to be selected.
Shouldn't query be (at least this is whats i saw in docs):
SELECT 'importer','name' FROM products LIMIT 6
?I debugged a little and got into this:
` //File -> vendor/spatie/laravel-query-builder/src/Concerns/AddsFieldsToQuery.php protected function addRequestedModelFieldsToQuery() { $modelTableName = $this->getModel()->getTable();
}`