Laravel 4 使用Laravel 4实现CRUD(代码审查)
我不太确定这里是否允许它请求代码审查,但我将尝试改进代码 好的,我刚开始使用Laravel 4,我读了一些关于如何在Laravel中实现CRUD的教程。最后我开发了一部分。我要向你们展示的更多的是控制器和雄辩的ORM 我这里有两个模型“组”,只能有一个“国家”,但“国家”可以分配给不同的“组”(“一对多”) 群模型 国家模式 在我的控制器中,我有index()函数,它接受用户搜索过滤器和分页请求 组控制器 希望得到健康的回应。Laravel 4 使用Laravel 4实现CRUD(代码审查),laravel-4,Laravel 4,我不太确定这里是否允许它请求代码审查,但我将尝试改进代码 好的,我刚开始使用Laravel 4,我读了一些关于如何在Laravel中实现CRUD的教程。最后我开发了一部分。我要向你们展示的更多的是控制器和雄辩的ORM 我这里有两个模型“组”,只能有一个“国家”,但“国家”可以分配给不同的“组”(“一对多”) 群模型 国家模式 在我的控制器中,我有index()函数,它接受用户搜索过滤器和分页请求 组控制器 希望得到健康的回应。 提前谢谢 这个问题应该去我知道,我不知道有一个codereview部
提前谢谢 这个问题应该去我知道,我不知道有一个codereview部分,谢谢!
class Group extends Eloquent
{
protected $table = 'group';
protected $guarded = array('group_id');
protected $primaryKey = 'group_id';
public function country()
{
return $this->belongsTo('country', 'country_id');
}
}
class Country extends Eloquent
{
protected $table = 'country';
protected $primaryKey = 'country_id';
public function group() {
return $this->hasMany('group', 'country_id');
}
}
public function index()
{
// search variables here
$s_name = Input::get("s_name");
$s_status = Input::get("s_status");
// order variables here
$sortBy = Input::get("sort_by");
$orderBy = Input::get("order_by");
// get all the groups
$groups = Group::with('country')
->join('country', 'country.country_id', '=', 'group.country_id');
// search conditions
$groups = $groups->whereIn('group_status', array(ACTIVE, INACTIVE));
if (!empty($s_name)) {
$groups = $groups->where('group_name', 'LIKE', "%$s_name%");
}
if (!empty($s_status)) {
$groups = $groups->where('group_status', 'LIKE', "%$s_status%");
}
// order
if (!empty($sortBy)) {
$orderBy = (empty($orderBy)) ? ASCENDING : $orderBy;
if ($sortBy == "o_name") {
$groups = $groups->orderBy('group_name', $orderBy);
} else if ($sortBy == "o_country") {
$groups = $groups->orderBy('country_short_name', $orderBy);
} else if ($sortBy == "o_status") {
$groups = $groups->orderBy('group_status', $orderBy);
}
} else {
$groups = $groups->orderBy('group.created_at', DESCENDING);
}
$groups = $groups->paginate(PAGINATION_LIMIT);
}