当我尝试使用forget()
方法从集合中删除一个项目时出现错误:
调用未定义的方法 照亮\数据库\口才\关系\ HasManyThrough :: forget()
我的模特City.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class City extends Model
{
public function rooms(){
return $this->hasManyThrough('App\Room','App\Object');
}
}
我的方法包含forget()
public function getSearchResults($request){
$request->flash();
if($request->input('city')!=null){
$result = $this->fR->getSearchResults($request->input('city'));
if($result){
foreach($result->rooms as $k=>$room)
{
if($request->input('room_size') > 0)
{
if($request->input('room_size') != $room->room_size)
{
$result->rooms()->forget($k);
}
}
}
return $result;
}
}
return false;
}
该如何解决? 感谢您的帮助
答案 0 :(得分:0)
您应在清除缓存后,通过以下方式更改代码。
public function getSearchResults($request){
$request->flash();
if($request->input('city')!=null){
$result = $this->fR->getSearchResults($request->input('city'));
if($result){
foreach($result->rooms as $k=>$room)
{
if($request->input('room_size') > 0)
{
if($request->input('room_size') != $room->room_size)
{
$result->rooms->forget($k);
}
}
}
return $result;
}
}
return false;
}
然后在命令下运行
php artisan cache:clear
Artisan::call('cache:clear');