2016-04-19 4 views
1

Zuerst habe ich alle drei Tabellenstruktur gegeben.Wie kann ich andere Tabellendaten in verschiedenen Tabellenspalten abrufen?

Aktionen Tabelle: actionsTable

Rollen Tabelle: rolesTable

Berechtigungstabelle: enter image description here

hier, wie ich action_id in permissions Tisch zu bekommen von actions Tabelle? und wie kann ich role_id in permissions Tabelle von roles Tabelle bekommen? Bitte sag mir den einfachen Weg, ich bin Anfänger in Laravel.

Aktion Modell:

<?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'); 
    } 
} 

Permission Modell: auch

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

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

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

Meinst du action_id Daten von Aktionstabelle in Berechtigungstabelle einfügen? – Priyanshu

+0

Ja, wenn ich 'ID' in' Aktion' Tabelle habe, dann möchte ich Daten in 'action_id' von' Erlaubnis' Tabelle einfügen. –

+0

"Bitte sagen Sie mir den einfachen Weg" - Ernsthaft, wenn Sie lernen wollen, hören Sie auf, nach dem einfachen Weg zu suchen. – ggdx

Antwort

0

Ich habe einen Weg gefunden, diese work.I zu tun für bin mit diesem Query Builderactions Tabelle id in permissions Tabelle action_id Spalte einzufügen.

Dazu in RoleController:

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')); 
} 

Und Action:

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')); 
} 

Vor diesem use DB; in Ihrem Kopf jeder Controller fügen Sie.

Hoffe, das wird für jemanden helfen.

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; 

Diese action_id in Permission-Tabelle mit der ID von Aktions-Tabelle aktualisieren, ROLE_ID in Permission-Tabelle mit ID aus der Rollentabelle Ich nehme an, das ist was du willst.

+0

Ok ich versuche und lasse Sie wissen, was passiert ist.Will ich es in welchem ​​Modell tun? und wie kann ich das im Controller nennen? –

+0

Es ist eine MySQL-Abfrage, um role_id und action_id in der Berechtigungstabelle zu aktualisieren. Da Sie phpMyadmin verwenden, sollte eine Registerkarte mit SQL sein. öffnen Sie es und führen Sie diese Abfrage – Priyanshu

+0

Ich dies ist SQL-Abfrage, aber das ist nur das Ergebnis sofort zeigen.Aber ich möchte, wenn ich 'ID' in' Aktion' Tabelle dann habe ich auch füllen 'action_id' in 'Berechtigungen' Tabelle und halten Sie auch diese Daten in der 'action_id' Spalte. –