如何在不同的表列中获取另一个表数据?

时间:2016-04-19 08:40:20

标签: php mysql sql laravel laravel-5.2

首先,我已经给出了所有三种表结构。

操作表: actionsTable

角色表: rolesTable

权限表: enter image description here

这里如何从action_id表中的permissions表中获取actions? 如何从role_id表中的permissions表中获取roles?请告诉我简单的方法,我是Laravel的初学者。

动作模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Action extends Model
{
    //
    protected $table = "actions";
    //public $fillable = []


    public function role(){
        return $this->belongsTo('App\Action');
    }    
    public function permission(){
        return $this->belongsTo('App\Action');
    }
}

权限模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Permission extends Model
{
    //
    protected $table ="permissions";

    public function actionGet(){
        return $this->hasOne('App/Permission');
    }
}

2 个答案:

答案 0 :(得分:0)

update permission_table a join action_table b on a.id = b.id join roles_table c
on a.id = c.id
set a.action_id = b.id,
a.role_id = c.id;

这将更新权限表中的action_id,其中id为action表 另外,role_id在权限表中,来自角色表的id。 我认为这就是你想要的。

答案 1 :(得分:0)

我找到了一种方法来完成这项工作。我正在使用 Query Builder import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; public class ConverterExample3 { static String xml1 = "<Music><type>rock</type></Music>"; public static void main(String[] args) { XStream xStream = new XStream(); xStream.processAnnotations(Music.class); Music musicObject = (Music) xStream.fromXML(xml1); System.out.println(musicObject); // prints Music [type=ROCK] } } @XStreamAlias("Music") class Music { public enum genre { ROCK, JAZZ }; genre type; @Override public String toString() { return "Music [type=" + type + "]"; } } 表中插入actionsid permissions列。

为此,在 RoleController:

action_id

ActionController:

public function store(Request $request)
{
    //
    $role = [];
    $role['role'] = $request->input('role');

   $data= Role::create($role);
   $id= $data->id;
   DB::table('permissions')->insert([
    'role_id' => $id
    ]);
    return redirect(route('allRole'));
}

在此之前,在每个控制器的标题中添加public function store(Request $request) { // $action= []; $action['action'] = $request->input('action'); $data= Action::create($action); $id= $data->id; DB::table('permissions')->insert([ 'action_id' => $id ]); return redirect(route('allAction')); }

希望这会对某人有所帮助。