Laravel 5.5在控制器中连接您的课程

时间:2018-12-01 18:58:46

标签: laravel laravel-5

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

namespace App;

use Illuminate\Database\Eloquent\Model;

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

如何通过使用将其连接到控制器中?

1 个答案:

答案 0 :(得分:2)

我建议您阅读有关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-这将被视为最佳实践。