当我尝试在Laravel 5中通过迁移设置外键约束时,收到错误消息:
[Illuminate \ Database \ QueryException] SQLSTATE [HY000]:常规错误:1215无法添加外键约束(SQL:在删除级联上,alter table
rittenregistratie
添加合作rittenregistratie_karakterrit_id_foreign外键(karakterrit_id
)引用karakterrit
(id
))[PDOException] SQLSTATE [HY000]:常规错误:1215无法添加外键约束D:\ wamp \ www>
但是我现在知道为什么了吗???迁移顺序正确,为什么我会收到此错误?表rittenregistratie具有一个名为karakterrit_id的外键,这是表karakterrit中的主键。
这是我的迁移rittenregistratie:
public function up()
{
Schema::create('rittenregistratie', function (Blueprint $table)
{
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->timestamps('datum');
$table->integer('beginstand');
$table->integer('eindstand');
$table->text('van');
$table->text('naar');
$table->text('bezoekadres');
$table->text('geredenroute');
$table->integer('karakterrit_id')->default(1);
$table->text('toelichting');
$table->integer('kilometerszakelijk');
$table->integer('kilomteresprive');
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
$table->foreign('karakterrit_id')
->references('id')
->on('karakterrit')
->onDelete('cascade');
});
}
Run Code Online (Sandbox Code Playgroud) 我有以下工厂:
(function() {
angular.module('temp')
.factory('Factory',Factory);
employeeFactory.$inject = ['$http'];
function employeeFactory($http) {
var factory = {};
var vm = this;
factory.login = function(email,password) {
return $http({
'method': 'POST',
'url': 'http://domain.dev/api/v1/login',
'data': $.param({
'email': email,
'password': password
}),
'headers': {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
return factory;
}
})();
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Uncaught SyntaxError: Unexpected token )
Run Code Online (Sandbox Code Playgroud)
控制台指的是最后一行:
})();
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 api 中实现验证,如下所示:
public function store(RideUpdateRequest $request)
{
$user = JWTAuth::parseToken()->authenticate();
$ride = Ride::create([
'user_id' => $user->id,
'time' => $request->time,
'date' => $request->date,
'type_id' => $request->type_id,
'location_id' => $request->location_id,
'billabletime' => $request->billabletime
]);
$ride->save();
return response()->json(['success' => 'Rit succesvol aangemaakt.'], 200);
}
Run Code Online (Sandbox Code Playgroud)
乘车更新请求:
public function rules()
{
return [
'time' => 'required|integer',
'date' => 'required|date',
'type_id' => 'required|integer',
'location_id' => 'required|integer',
'billabletime' => 'required|integer'
];
}
Run Code Online (Sandbox Code Playgroud)
那么我怎么能在 json 中返回错误消息(如果请求验证失败)?现在在邮递员我什么也没收到?
- 编辑 -
回复:
{
"billabletime": [
"The billabletime field is …
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的方法:
return AddedSoftware (software) {
this.softwares.map(function(soft) {
if(soft.id == software) {
return software.name;
}
})
}
Run Code Online (Sandbox Code Playgroud)
那么我怎么能打破并返回soft.id == software
现在它softwares
在它返回之前循环整个!
在我的 Laravel 5.4 模型之一上,我有多个访问器。像这样:
public function getRevenueAttribute()
{
return $this->calculate()->revenue($this->price, $this->amount);
}
Run Code Online (Sandbox Code Playgroud)
问题是当我将模型传递给我的 vue 组件时:
<product :prp-product="{{json_encode($product)}}"></product>
Run Code Online (Sandbox Code Playgroud)
product.revenue
不存在。有没有办法实现这一目标?不想再在vue里计算这些东西了。
非常感谢。
目前我正在发送给我的api:
return Forum::with('topics')
->paginate($pagination);
Run Code Online (Sandbox Code Playgroud)
所以一个论坛有很多主题.我如何计算所有主题并通过此json响应将其发回?
我正在尝试访问这样的 URL:
methods: {
show (file) {
this.$router.go('/file/' + file.path + '?token=' + localStorage.getItem('jwt-token'));
}
}
Run Code Online (Sandbox Code Playgroud)
我不是要转到组件。我只想转到以下网址:
'/file/' + file.path + '?token=' + localStorage.getItem('jwt-token')
Run Code Online (Sandbox Code Playgroud)
但它不起作用。它将我重定向到主页。
我怎样才能做到这一点?
当我急切地加载这样的时候:
return Port::filter($filters)
->with(['scores' => function ($query) {
$query->select(["*"]);
}]
)
->actives()
->paginate(14);
Run Code Online (Sandbox Code Playgroud)
我得到了预期的结果.但是,当我选择特定的列名称时:
return Port::filter($filters)
->with(['scores' => function ($query) {
$query->select(["id, name"]);
}]
)
->actives()
->paginate(14);
Run Code Online (Sandbox Code Playgroud)
结果总是如此[]
.这可能有什么问题?
我有几个eager loaded
关系Laravel 5.6
.我想将数组键名更改为eager加载对象上的属性.
如何确保数组键0
并1
成为name属性(" COSTS
"和" SAIL_BOAT_FRIENDLY
")?
这甚至可能吗?
- 编辑
return Port::filter($filters)
->with('scores')
->actives()
->paginate(14);
Run Code Online (Sandbox Code Playgroud)
得分关系
public function scores()
{
return $this->hasMany(Score::class)
->select("id", "port_id", "name", DB::raw('AVG(score) as score'))
->groupBy('port_id', 'name');
}
Run Code Online (Sandbox Code Playgroud) laravel ×5
php ×5
javascript ×3
vue.js ×2
angularjs ×1
arrays ×1
ecmascript-6 ×1
eloquent ×1
laravel-5 ×1
validation ×1
vue-router ×1