2017-09-30 4 views
1

初心者の質問はここにあります。情報との関係を持っている私の建物のテーブルにbuilding_nameの列を取得するにはどうすればいいですか? show.views?そして私はまた、どのようにショービューの中でそれを呼び出すことができます助けてください知っていたかった。関係にアクセスしてlaravelのビューに渡す方法

<?php 

namespace App\Http\Controllers; 

use App\Information; 
use App\Building; 
use Illuminate\Http\Request; 
use Session; 

class InformationController extends Controller 
{ 
/** 
* Display a listing of the resource. 
* 
* @return \Illuminate\Http\Response 
*/ 
public function index() 
{ 
    // 
} 

/** 
* Show the form for creating a new resource. 
* 
* @return \Illuminate\Http\Response 
*/ 
public function create() 
{ 
    $buildings = new Building(); 
    $buildings::all(); 
    return view('create', compact('buildings')); 
} 

/** 
* Store a newly created resource in storage. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function store(Request $request) 
{ 
    $this->validate($request, array(
     'building_information' => 'required', 
     'building_id' => 'required' 
    )); 

    //store in the db 
    $information = new Information; 

    $information->building_information = $request->building_information; 
    $information->building_id = $request->building_id; 

    $information->save(); 

    Session::flash('success', 'The information was successfully saved!'); 

    //redirect to other page 
    return redirect()->route('information.show', $information->id); 
} 

/** 
* Display the specified resource. 
* 
* @param \App\Information $information 
* @return \Illuminate\Http\Response 
*/ 
public function show($id) 
{ 
    $information = Information::find($id); 
    return view('show')->with('information', $infomation); 
} 



<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Building extends Model 
{ 
public function information() 
{ 
    return $this->hasMany('App\Information'); 
} 
} 


<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Information extends Model 
{ 
public function building() 
{ 
    return $this->belongsTo('App\Building'); 
} 
} 

答えて

0

ジャスト追加関係を確認してビューに渡す

public function show($id) 
{ 
    $information = Information::with('building')->findOrFail($id); 
    return view('show')->with('information', $infomation); 
} 

ビュー内:

{{$information->building->building_name}} 
+0

これは本当に私にいくつかの時間を節約してくれてありがとう:) –

+0

は、どのようなwith()とfixfindorfail()は()を説明することができますか? –

+0

あなたは私の答えに基づいて他の人が編集してコメントした後に私の答えを受け入れなかった理由を説明できますか? –

0

情報オブジェクトを取得するときにあまりに関係をロードします。

$information = Information::with('building')->find($id); 

を関連する複数の建物がある場合、あなたはあなたのブレードビューでそれらをループすることができます

@foreach($information->building as $building) 
    <li>{{ $building->building_name }}</li> 
@endforeach 
+0

どのようにビューに表示できますか? –

+0

$ information-> building-> building_nameそれを行う必要があります – kerrin

関連する問題