首页 > 解决方案 > Laravel 5.5 在控制器中连接你的类

问题描述

文件夹“App”中有一个文件“MyClasses.php”:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Model1 extends Model {}
class Model2 extends Model {}

如何使用 use 在控制器中连接它?

标签: laravellaravel-5

解决方案


我建议您阅读 PSR-4 标准: https ://www.php-fig.org/psr/psr-4/

在这种情况下,MyClasses.php 不是模型的有效名称,因为 a) 没有调用其中定义的任何类,MyClasses并且 b) 该文件中有许多类定义。

// App/Model1.php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Model1 extends Model {
    protected $table = 'some_table';
}

// Controller
use App\Http\Controllers\Controller;
use App\Model1;

class SomeController extends Controller
{
    public function index()
    {
        $record = Model1::where('some_field', 1)->get();
    }
}

编辑:澄清。两个模型都应该在它们自己的文件中,分别位于 App 文件夹下的 Model1.php 和 Model2.php 文件中。此外,您的模型名称 * 应该 * 对应于他们正在访问的表名。因此,例如,如果 Model1 将绑定到表user_confirmations,您应该将文件和类重命名为UserConfirmations- 这将被视为最佳实践。


推荐阅读