Laravel 4使用相同的模型和控制器来选择12个列表

时间:2015-10-08 14:14:38

标签: laravel-4 model controller

我必须为12个表提供模型,控制器和视图。它们具有相同的结构ID,名称,顺序。

我在想,也许正在使用:

Controller 
index($model)
$model::all()
return View::make(all_tables,compact('model'))
edit($model,$id)... and so on.

但是,并且不知道是否只使用一种模式。

有人做过这样的事吗? 有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

尽管每个模型都具有相同的表格结构,但是您尝试实现的目标并不可取,因为您会失去{{3}}的许多流畅功能。

关于控制器,这将起作用:

<?php
namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class GenericModelController extends Controller
{
    public function loadModelById($model, $id)
    {
        $instance = \App::make('App\\' . ucfirst($model));
        return $instance->find($id);
    }
}

您需要以下路线:

Route::get('show/{model}/{id}', 'GenericModelController@loadModelById');

示例,加载id为1的用户:

http://www.yourdomain.com/show/user/1

编辑:我刚看到您正在使用Laravel 4,因此我认为定义路线的语法会有所不同,但一般概念仍然有效。在Laravel 5中进行测试并且运行良好。

答案 1 :(得分:0)

你应该从这里得到一些想法。请使用下面的链接。

https://scotch.io/tutorials/a-guide-to-using-eloquent-orm-in-laravel

// app / models / Bear.php

类熊扩展了Eloquent {

// MASS ASSIGNMENT -------------------------------------------------------
// define which attributes are mass assignable (for security)
// we only want these 3 attributes able to be filled
protected $fillable = array('name', 'type', 'danger_level');

// DEFINE RELATIONSHIPS --------------------------------------------------
// each bear HAS one fish to eat
public function fish() {
    return $this->hasOne('Fish'); // this matches the Eloquent model
}

// each bear climbs many trees
public function trees() {
    return $this->hasMany('Tree');
}

// each bear BELONGS to many picnic
// define our pivot table also
public function picnics() {
    return $this->belongsToMany('Picnic', 'bears_picnics', 'bear_id', 'picnic_id');
}

}

答案 2 :(得分:0)

我找到了一个简单的方法。 只有一个模型,一个控制器和一个视图(索引,编辑等)。

单个表格 id,列表名称,值(列表中显示的名称)

Yo pass可以传递给de查看每个列表的所有值,对于表格中的任何列表,您可以创建de select,如果它不为空。

相关问题