Ошибка вызвана тем, что ваш код не использует правильный класс, это то, что он ищет:
App\Http\Controllers\InvoiceDataSource
Что бы просто искать файл InvoiceDataSource.php
в папке вашего контроллера.
Чтобы изменить класс, он ищет использование use
.
Это потому, что, поскольку вы находитесь в пространстве имен контроллера, когда вы называете класс без атрибута use
, по умолчанию используется пространство имен контроллера (App\Http\Controllers
).
<?php
namespace App\Http\Controllers;
// ...
use App\Core\Forms\Invoice\InvoiceDataSource;
// ...
class SomeController expands Controller {
// ...
public function getDataSource($id,Request $request){
return InvoiceDataSource::getAllCustomers();
}
// ...
}
ОБНОВЛЕНИЕ:
Как уже упоминалось в комментариях, у вас есть и другие альтернативы, когда вы включаете класс с другим пространством имен:
1) Используйте все пространство имен класса
public function getDataSource($id,Request $request){
return App\Core\Forms\Invoice\InvoiceDataSource::getAllCustomers();
}
2) Или, если у вас есть несколько классов с одинаковыми именами в разных пространствах имен, вы можете использовать их как:
use App\Core\Forms\Invoice\InvoiceDataSource as DataSource
use App\Core\Mailer\Invoice\InvoiceDataSource as DataSourceMailer
// ... etc