【发布时间】:2019-04-30 01:52:18
【问题描述】:
我想获取cycles 表的ID,以便我可以存储到mortalities 表中。
SELECT `id` FROM `cycles`
WHERE `date_start_raise` <= request('date_input')
AND `date_end_raise` >= request('date_input')`
转换为 Laravel 查询生成器:
<?php
$cycle = DB::table('cycles')->select('id')
->where('date_start_raise', '<=', request('date_input'))
->where('date_end_raise', '>=', request('date_input'))
->get();
request('date_input') 来自 MortalityController
MortalityController.php
public function store(Request $request)
{
$this->validate($request, array(
'date_input' => 'required|date',
'number_of_mortality' => 'required|numeric',
'chicken_age' => 'required|numeric'
) );
$cycle = DB::table('cycles')->select('id')
->where('date_start_raise', '<=', request('date_input'))
->where('date_end_raise', '>=', request('date_input')) ->get();
return Mortality::create([
'date_input' => request('date_input'),
'number_of_mortality' => request('number_of_mortality'),
'chicken_age' => request('chicken_age'),
'cause_of_death' => request('cause_of_death'),
'cycle_id' => $cycle->first()->id,
'user_id' => Auth::id()
]);
}
然后我得到一个错误:
“消息”:“SQLSTATE [22007]:无效的日期时间格式:1366 不正确 整数值:第 1 行的列“cycle_id”的“[]”(SQL:插入
mortalities(date_input,number_of_mortality,chicken_age,cause_of_death,cycle_id,user_id,updated_at,created_at) 值 (2018-09-04, 25, 2, , [], 1, 2018-11-28 07:38:01, 2018-11-28 07:38:01))"
我修复了错误,但出现了新错误
"message": "尝试获取非对象的属性 'id'"
谁能帮帮我?
【问题讨论】:
-
请求中的$在哪里?这是一个变量,而不是一个函数
-
先生在哪里?在 cycle_id 处?
-
调用request('number_of_mortality')时,应该是$request->get('number_of_mortality'),
标签: php mysql laravel eloquent laravel-query-builder