我正在构建一个涉及跟踪不同类型潜在客户的Laravel应用程序.例如,有再融资线索和购买线索.
由于引线共享大量的信息和功能,但不是全部,我的想法是创建一个Lead类,它扩展了Laravel的Model类,然后是一个RefinanceLead扩展Lead类的类.
所以我有:
class Lead extends Model
{
// shared lead stuff
}
class RefinanceLead extends Lead
{
// stuff specific to refinance leads
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
leads桌子和refinance_leads桌子吗?leads表中的任何内容?我在通过文档回答这个问题时遇到了麻烦,但是如果我错过了解释的地方,请告诉我.谢谢.
我有一个包含users表格的Laravel 5.3应用程序.该表上的一个字段是api_token,在数据库定义中设置为NOT NULL.如果我使用Postman并点击我的API端点来创建用户并且不包含该api_token字段,则会收到以下错误:SQLSTATE[HY000]: General error: 1364 Field 'api_token' doesn't have a default value.
我还没有添加代码来生成令牌,所以这正是我所期望的.但是,我有这个PHPUnit测试:
/** @test */
public function a_user_can_be_created()
{
$this->user_data = [
'first_name' => 'Jane',
'last_name' => 'Smith',
'email_address' => 'jsmith@mailinator.com',
'phone' => '1234567890',
'username' => 'jsmith',
'password' => 'testing'
];
$this->post('/api/users', $this->user_data, array(
'Accept' => 'application/json'
))
->assertResponseStatus(201)
->seeJsonEquals(['status' => 'success'])
->seeInDatabase('users', $this->user_data);
}
Run Code Online (Sandbox Code Playgroud)
问题是测试通过了.当用户保存数据库时应该抛出异常,该测试如何成功?
我已经在不同时间点"死亡并倾倒"并确认在自动化测试运行时数据实际上已保存到数据库中.我也尝试使用相同的数据库进行Postman和自动测试(而不是单独的测试数据库) - 相同的结果.
我正在使用AGM提供的带有Angular的Google Places Autocomplete API .它运行良好,但我无法手动设置我的起始位置.这意味着,如果我坐在洛杉矶的电脑前,我希望能够告诉API返回结果,就像我在波士顿一样.我相信这可以在谷歌的基础上根据他们的文档,但我还没有弄清楚如何在我正在使用的Angular组件中做到这一点.
任何人都有一个提示如何让这个工作?以下是我的组件的相关部分.谢谢!
setGoogleMapsAutocomplete() {
this.mapsAPILoader.load().then(() => {
let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
types: ["address"]
});
autocomplete.addListener("place_changed", () => {
this.ngZone.run(() => {
let place = autocomplete.getPlace();
this.address = '';
for (var i = 0; i < place.address_components.length; i++)
{
var addressType = place.address_components[i].types[0];
if (this.hasOwnProperty(addressType)) {
let nameLength = addressType == 'administrative_area_level_1' ? 'short_name' : 'long_name';
this[addressType] = place.address_components[i][nameLength];
}
}
this.error = false;
});
});
});
}
Run Code Online (Sandbox Code Playgroud)