最近我一直在学习使用Slim 3和雄辩的语言。
我想做的就是这个(如果有可能的话)
所以我有一个Model.php文件
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model as Model;
use Illuminate\Database\Capsule\Manager as DB;
class Course extends Model{
protected $table = "courses";
public function GetCourses(){
}
}
?>
还有我的Controller.php
<?php
namespace App\Controllers;
use App\Models\Course;
use Slim\Views\Twig as View;
class CourseController extends Controller{
public function index($request,$response){
return $this->view->render($response,'course/CourseNew.twig',$data);
}
}
?>
所以我的问题在Model.php中,是否可以以某种方式调用另一个表?
我已经用protected $table = "courses";
来命名我的,我有点理解我定义的表是针对整个 Class 的,但是有没有办法或解决方法?
这里的主要思想是我有一些非常小的数据库表,不值得为它们创建另一个模型文件
如果这不可能,那有什么选择呢?
我是否必须制作另一个模型文件,并使用 namespace App \ Models \“ new_model”;
在需要它的控制器顶部调用它答案 0 :(得分:0)
我建议将数据结构与数据访问逻辑分开。例如:将数据库查询的代码放入存储库中。存储库不在乎数据来自何处(表x或表y)。
<?php
namespace App\Repository;
use App\Model\Course;
class CourseRepository extends Repository
{
public function __construct(Connection $db)
{
$this->db = $db;
}
public function findCourceById(int $courseId): ?Course
{
// execute query here
//$this->db->....
return $course;
}
public function findSomething(): array
{
// execute query here
//$this->db->....
return $rows ?: [];
}
}