0

Ich habe eine asset_category Tabelle (Spalten 'asset_category_id', 'category ') und eine asset Tabelle (Spalten' asset_id', 'asset_category_id') und wollen zeigen die (Spalten 'asset_id', 'asset_category_id.category,') von der asset Tabelle anstelle von nur 'asset_id' n 'asset_category_id' Spalten.Laravel Eloquent Beziehung: HasRelationships.php FatalErrorExexeption

Asset_CatoriesController

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Asset_category; 

class Asset_CategoriesController extends Controller 
{ 
    public function asset_category(){ 
     $asset_categories = Asset_category::all(); 
     return view('category', ['asset_categories' => $asset_categories]); 
    } 

    public function add(Request $request){ 
     $this->validate($request, [ 
      'asset_category_id' => '', 
      'category' => 'required' 
     ]); 
     $asset_categories = new Asset_category; 
     $asset_categories ->asset_category_id = $request->input('asset_category_id'); 
     $asset_categories ->category = $request->input('category'); 
     $asset_categories ->save(); 
     return redirect('/category') ->with('info', 'New Category Saved Successfully!'); 
    } 

    public function update($id){ 
     $asset_categories = Asset_category::find($id); 
     return view('update', ['asset_categories' => $asset_categories]); 

    } 

    public function edit(Request $request, $id){ 

     $this->validate($request, [ 
      'asset_category_id' => '', 
      'category' => 'required' 
     ]); 
     $data = array(
      'category' => $request ->input('category') 
     ); 
     Asset_category::where('asset_category_id', $id)->update($data); 
     return redirect('/category') ->with('info', 'Category Updated Successfully!'); 
    } 

    public function delete($id){ 
     Asset_category::where('asset_category_id', $id) 
      ->delete(); 
     return redirect('/category') ->with('info', 'Category Deleted Successfully!'); 
    } 
} 

AssetController

<?php 

namespace App\Http\Controllers; 

use App\Asset; 
use App\Asset_category; 
use App\Manufacturer; 
use App\Department; 



use Illuminate\Http\Request; 

class AssetController extends Controller 
{ 
    public function asset(){ 
     $assets = Asset::all(); 
     // return view::make('viewAsset')->with('assets', $assets); 
     return view('viewAsset', ['assets' => $assets]); 
    } 

    public function manufacturer(){ 
     $manufacturers = Manufacturer::all(); 
     return view('asset', ['manufacturers' => $manufacturers]); 
    } 

    public function add(Request $request){ 
     $this->validate($request, [ 
      'asset_id' => '', 
      'asset_category_id' => 'required', 
      'manufacturer_id' => 'required', 
      'department_id' => 'required', 
     ]); 
     $assets = new Asset; 
     $assets ->asset_id = $request->input('asset_id'); 
     $assets ->asset_category_id = $request->input('asset_category_id'); 
     $assets ->manufacturer_id = $request->input('manufacturer_id'); 
     $assets ->department_id = $request->input('department_id'); 
     $assets ->save(); 
     return redirect('/viewAsset') ->with('info', 'New Asset Saved Successfully!'); 
    } 

    public function update($id){ 
     $assets = Asset::find($id); 
     return view('updateAsset', ['assets' => $assets]); 

    } 

    public function edit(Request $request, $id){ 

     $this->validate($request, [ 
      'asset_id' => '', 
      'asset_category_id' => 'required', 
      'manufacturer_id'=> 'required', 
      'department_id' => 'required' 
     ]); 
     $data = array(
      'asset_category_id' => $request ->input('asset_category_id'), 
      'manufacturer_id' => $request ->input('manufacturer_id'), 
      'department_id' => $request ->input('department_id') 
     ); 
     Asset::where('asset_id', $id)->update($data);  
     return redirect('/viewAsset') ->with('info', 'Asset Updated Successfully!'); 
    } 

    public function delete($id){ 
     Asset::where('asset_id', $id) 
      ->delete(); 
     return redirect('/viewAsset') ->with('info', 'Asset Deleted Successfully!'); 
    } 
} 

Asset.php

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use App\Asset_category; 

class Asset extends Model 
{ 
    protected $primaryKey = 'asset_id'; 

    public function category(){ 

     return $this->belongsTo('Asset_category'); 
     //$this->belongsTo('Asset_category'); 
     //Asset_category::where('asset_category_id', $this->asset_category_id)->first()->category; 
    } 

} 

Asset_category.php

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use App\Asset; 

class Asset_category extends Model 
{ 
    protected $primaryKey = 'asset_category_id'; 

    public function asset() { 
     return $this->hasMany('Asset', 'asset_category_id'); 
    } 
} 

viewAsset.php

@foreach($assets->all() as $asset) 
<tr> 
    <td>{{ $asset->asset_id}}</td> 
    <td>{{ $asset->category->category}}</td> 

, wenn ich das Projekt ausführen ich erhalte eine FatalErrorExeception die sagt

Class 'Asset_category' not found in HasRelationships.php 

Antwort

0
  1. Sie müssen @foreach mit @endforeach
  2. beenden Sie müssen protected $table = 'table_name'; in Modell erklären, weil in Standard Laravel Tabellennamen Pluralform Modells erzeugen Klassenname
  3. Versuchen Sie, dieses zurückzugeben:

    return $this->belongsTo('Asset_category');

    return $this->hasMany('Asset', 'asset_category_id');

dazu:

return $this->belongsTo(Asset_category::class);

return $this->hasMany(Asset::class, 'asset_category_id');

+0

Ich werde jetzt versuchen, zu bekommen Eigenschaft von Nicht-Objekt ErrorException. @ Nyicip – Nii

+0

in welcher Zeile? @Nii – Nyicip

+0

Der Fehler befindet sich in Speicher/Framework/views/0bf0f93 ... php in Zeile 55. Ich denke, die Datei, die den Fehler enthält, wird automatisch von Laravel erstellt, wenn die Anwendung ausgeführt wird. @ Nyicip – Nii

1

Sie haben Asset_category in einem Namespace. Versuchen Sie, diese zu ändern:

return $this->belongsTo('Asset_category'); 

dazu:

return $this->belongsTo(Asset_category::class); 
+0

i jetzt bin immer |. Der Versuch, Eigentum von Nicht-Objekt Error zu bekommen @ Jeff – Nii