我在子文件夹中有一个控制器,它完美无缺:
路线:
Route::resource('json/stock/equipmentImages', 'Stock_EquipmentImageController');
从controller / stock / EquipmentImageController.php获取它的类 它有一个类定义:
class Stock_EquipmentImageController extends \BaseController {
如果我这样做,最奇怪的事情发生在:
Route::resource('json/stock/equipmentLocations', 'Stock_EquipmentLocationController')
然后我收到消息,找不到课程。
如果我将类从controller / stock / EquipmentLocationController.php移动到 controller / EquipmentLocationController.php并调整路径:
Route::resource('json/stock/equipmentLocations', 'EquipmentLocationController');
一切正常。这发生在没有命令行访问的共享服务器上。在我的localhost上,所有控制器都可以放入子文件夹中。
答案 0 :(得分:0)
我没有使用命名空间,它在我的本地主机上工作正常,但在我的公共服务器上出现了问题。命名空间DID解决了egig建议的问题。感谢。
以下是我的所作所为,以防其他人遇到类似问题:
我浏览了这个很好的教程:https://www.youtube.com/watch?v=yAzd7Ig1Wgg 熟悉命名空间,因为这对我来说对Laravel 4来说是相对较新的。
路由器设置(资源路由器):
Route::resource('json/stock/equipment', 'App\Controllers\Stock\EquipmentController');
将psr 0设置添加到autoload :(而不是使用classmap),就像视频所示。
,
"psr-0": {
"Stock": "app/controllers/"
} ....
没有向basecontroller添加任何内容(没有命名空间描述):
class BaseController extends Controller {
public function __construct(){ ....
在子文件夹(controllers \ stock)中为我的控制器添加了命名空间和依赖项:
namespace App\Controllers\Stock;
use BaseController, Form, Input, Redirect, View, Equipment, Response;
class EquipmentController extends BaseController { ....
然后将我的模型放在子文件夹(models \ stock)中,没有命名空间的描述。
class Equipment extends \Eloquent {
protected $fillable = [
'description',
'location',
....
然后我做了'php artisan dump-autoload'并将所有内容上传到我的公共服务器,相应地更改了数据库和公用文件夹设置,因为它们不同。一切正常!
欢迎提供反馈,感谢您的支持!