如何从模型中的主表中获取数据并在laravel中的另一个模型中使用?

时间:2017-04-03 06:54:52

标签: laravel-5

  

这是我的一个型号名称"部门"

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Department extends Model
{
    //
     protected $table = 'dept_master';
}
  

和部门的控制人员

命名空间App \ Http \ Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;



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

use App\Department;

class DepartmentController extends Controller
{
    public function departmentsName()
    {

        $departments = DB::table('dept_master')->orderBy('edesc','ASC')->get();
        return $departments;
    }
}
  

和另一个模范申诉登记册

<?php

    namespace App;
    //namespace Models;

    use Illuminate\Database\Eloquent\Model;


    class GrievanceRegister extends Model
    {

    }
  

和申诉控制器

<?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;


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

use App\GrievanceRegister;
use App\Department;

class GrievanceRegisterController extends Controller
{
   public function show()
   {
  $departments = Department::orderBy('edesc','ASC')->get();
  return view('griev_reg_form', array('departments' => $departments));
}

}

   ?>
  

并在视图文件中

 <select name="departments"> <?php foreach($departments as $result)
                {
                    ?> <option value="<?php echo $result->deptcode; ?>"><?php echo $result->edesc; ?></option>  <?php   }       ?>
                    </select>
  

从另一个模型中调用一个模型数据是否正确?   控制器。如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

我不确定模型和控制器的概念是否清楚。

我尽力在这里解释一下。

因此模型用于与表进行通信。

在你的情况下,我猜你看到代码是这样的,你有一个名为departments的表,这就是为什么你会有一个模型Department,你可以帮助保存,更新,删除或从departments表中提取数据。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Department extends Model
{
     protected $fillable = ['name'];
}

再次以第一个字母表的形式出现更好。

$fillable变量定义表中的哪些字段可以进行质量分配。有关Lravel 5.4,请参阅此处reference

现在我假设您的表格中有idname字段departments

现在在您的控制器中,您指的是一些表:dept_master这是没有意义的。

你的控制器应该是这样的:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Department;

use App\department;

class DepartmentController extends Controller
{
    public function departmentsName()
    {
        $departments = Department::orderBy('edesc','ASC')->get();
        return $departments;
    }
}

我不知道您在模型中使用$table变量尝试实现的目标,其中包含字符串dept_master以及此表dept_master是什么。

我已经解释了模型和控制器的概念。

为每张桌子准备模型,并通过模型从任何控制器访问它们。它很简单。

正如我在回答你之前的问题时提到的那样。对于表名和camelCase,请使用snake_case复数形式,除了模型名称的第一个字母大写外。