collectionオブジェクトについて
Laravel を学習中の者です。
以下のコードにつきまして、お聞きしたい部分があります。
以下はビュー部分の index.blade.php
です
@extends('layouts.helloapp')
@section('title','Person.index')
@section('menubar')
@parent
インデックスページ
@endsection
@section('content')
<table>
<tr><th>Data</th></tr>
@foreach ($items as $item)
<tr>
<td>{{$item}}</td>
<td>{{$item->getData()}}</td>
</tr>
@endforeach
</table>
@endsection
@section('footer')
copyright 2017 tuyano.
@endsection
以下は、モデルクラスである Person.php
です
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Person extends Model
{
public function getData()
{
return $this->id . ':' . $this->name . '(' . $this->age . ')';
}
}
以下はコントローラー部分である、 PersonController.php
です
<?php
namespace App\Http\Controllers;
use App\Person;
use Illuminate\Http\Request;
class PersonController extends Controller
{
public function index(Request $request)
{
$items = Person::all();
// if($items instanceof Person){
// die('ok');
// }else{
// die('ng');
// }
// var_dump(get_object_vars($items));
// exit();
return view('person.index',['items' => $items]);
}
}
以下はルート部分である、 web.php
です。
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
// Route::post('hello','HelloContoroller@post');
//use App\Http\Middleware\HelloMiddleware;
Route::get('hello/add','HelloController@add');
Route::post('hello/add','HelloController@create');
Route::get('hello','HelloController@index');
Route::get('hello/edit','HelloController@edit');
Route::post('hello/edit','HelloController@update');
Route::get('hello/del','HelloController@del');
Route::post('hello/del','HelloController@remove');
Route::get('hello/show','HelloController@show');
Route::get('person','PersonController@index');
Route::get('test','HelloController@foo');
上記 http://localhost/person
にアクセスすると、以下の画面が表示されます。
お聞きしたい部分なのですが、 index.blade.php
内の「$item
」が何故 getData
メソッドを呼び出せるのか、といった点です。
PersonControler.php
内で var_dump
などし $items
の中身を確認したのですが、 getData
メソッドは存在していませんでした。
何故、 getData
メソッドを呼び出すことができるのでしょうか?