我和adv模型之间有关系。实际上我想显示所有具有一个或多个活动副词的区域(我有活动列到adv)。而下一个类似的问题。所有地区都包含城市。当用户选择某个区域进入视图时,他看到了该地区的所有城市。最好的方法是什么?
我不会手动编写每个城市。我有两个想法:
第一个城市将是字符串列。实际上用户会选择区域并将城市名称写入输入字段。
控制器将检查此区域是否存在此城市。如果没有,它将创建一个新的。
我认为第二个想法更好,因为创建搜索引擎和过滤结果会更简单。
答案 0 :(得分:0)
你有2个模特
1)Region.php
<?php
namespace App\Models;
use Eloquent;
class Region extends Eloquent
{
protected $table = "region";
public function regionadv()
{
/*For active adv only*/
return $this->hasMany('App\Models\Adv')->where('active', '=', 1);
}
}
在eloquent中查询:
$regionlist = = Region::has('regionadv')->get();
祝你好运。
答案 1 :(得分:0)
您可以在此类推荐中使用global scope来过滤为仅有效的推荐。 (这将过滤所有雄辩查询中的副词)
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
class Adv extends Model
{
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('aktiv', function (Builder $builder) {
$builder->where('aktiv', '=', true);
});
}
}
然后在区域模型中使用关系
namespace App\Models;
use Eloquent;
class Region extends Eloquent
{
public function adv()
{
return $this->hasMany('App\Models\Adv');
}
}
并在控制器中获取结果:
$region = Region::has('adv')->get();