私はRoute::resource('clients', 'ClientController');
というリソースコントローラを作成しましたが、Showメソッドを使用する場合を除いてすべて正常に動作しているようです。未定義の変数ですが、var_dumpはLaravelのデータを表示します
localhost:8000/clients/1にアクセスすると、client
の未定義の変数エラーが発生しました。私がコントローラから渡している$ client変数でビューがピックアップされていない理由や理由はわかりません。
ルート: Route::resource('clients', 'ClientController');
ClientController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Client;
class ClientController extends Controller
{
/**
* Create a new controller instance
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$clients = Client::where('user_id', $request->user()->id)->get();
return view('clients.index', [
'clients' => $clients,
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view('clients.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'organization' => 'required|max:255',
]);
//Create the task
$request->user()->clients()->create([
'organization' => $request->name,
]);
return redirect('/clients');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
$client = Client::find($id);
return view('clients.show', compact($client));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
ビュー(クライアント/ show.blade.php):
@extends('admin_template')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
<strong>Organization: </strong> {{ $client->organization }}
</div>
</div>
</div>
</div>
</div>
@endsection
私は私のコントローラ(ショー)でdd($client)
を行うことができますし、必要なデータがそこにあるのを見て、それをデータベースからフェッチしています。
ありがとう! !それは今、魅力のように動作します。 – Derek