正如你看到下面我有两个表。
1.Posts表(表中的记录中的输入和输出)
id lecture_name roomkey created_at updated_at user_id
1 Ee Vonne Ng L02 2019-01-22 2019-02-03 1
2 Ee Vonne Ng L03 2019-01-22 2019-01-23 1
重点开放表(keynos)
id roomkey status created_at updated_at
1 L01 0 2019-01-22 2019-02-04
2 L02 1 2019-01-22 2019-01-22
3 L03 1 2019-01-22 2019-01-22
4 L04 0 2019-01-22 2019-02-04
我有一个问题,当我想在帖子中删除一条记录,是的,我是成功的,但我希望它也keyno状态更新为0,这样它充当此键是否有效。但我不知道我错过了,因为我可以删除,但我不能更新keyno状态。没有错误显示,但我的状态不更新。怎么有人能帮助我或者给我一些建议TT
下面是我的代码。
在使用0 =不使用1 =密钥
1.Post控制器
*/
public function destroy($id)
{
$post = Post::find($id);
$post->delete();
if($post->delete()){
$post = Post::find($id);
$key = Keyno::all();
$postroomkey = $post->roomkey;
Keyno::where('roomkey','=',$postroomkey)
->update(['status' => 0]);
}
}
你两次运行$post->delete();
。
第一个将删除该帖,但第二个实际上并没有做任何事情,这意味着它返回false,因为它无法找到职位。
这意味着您在if
语句代码不会实际运行。它改成这样:
public function destroy($id)
{
$post = Post::find($id);
$postroomkey = $post->roomkey;
if($post->delete()){
$key = Keyno::all();
Keyno::where('roomkey','=',$postroomkey)
->update(['status' => 0]);
}
}
“试图让非对象的特性‘roomkey’”
这可能是由于$post
不被你删除它后了,删除前取roomkey
的对象。更新了答案。