我必须为12个表提供模型,控制器和视图。它们具有相同的结构ID,名称,顺序。
我在想,也许正在使用:
Controller
index($model)
$model::all()
return View::make(all_tables,compact('model'))
edit($model,$id)... and so on.
但是,并且不知道是否只使用一种模式。
有人做过这样的事吗? 有什么想法吗?
由于
答案 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,如果它不为空。