我试图理解这是如何工作的。我有这个模型:
namespace App;
use L5SimpleFM\FileMakerModels\BaseModel;
use L5SimpleFM\Contracts\FileMakerInterface;
class FMNationality extends BaseModel
{
protected $connection = 'filemaker';
protected $layoutName = 'Web : Nationalities';
}
BaseModel __constructor方法如下所示:
namespace L5SimpleFM\FileMakerModels;
use L5SimpleFM\Contracts\FileMakerInterface;
abstract class BaseModel
{
protected $layoutName;
protected $connection;
public function __construct(FileMakerInterface $fm)
{
$this->connection = $fm->setLayout($this->layoutName);
}
...
}
FileMakerInterface接口如下所示:
namespace L5SimpleFM\Contracts;
interface FileMakerInterface
{
public function setLayout($layoutName);
public function findAll();
public function findByFields($fieldValues);
...
}
现在,我将如何创建新的FMNationality模型?当我在修补程序中尝试$x = new FMNationality();
时,它会询问参数,因为BaseModel有一个接口实例作为参数......
我想要的就是能够创建新的类对象,我不知道如何。
答案 0 :(得分:0)
由于您尚未声明构造函数,因此使$ x = new FMNationality()调用继承的baseModel构造函数。 因此,您必须在调用中传递参数,或者必须在FMNationality类中声明不带参数的构造函数。 这样的事情:))