laravelを学習中なのですが、下記のコードに関して、お聞きしたいことがあります。
以下は、テーブル「people」のモデルクラス「person.php」です。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Person extends Model { public function getData() { return $this->id . ':' . $this->name . '(' . $this->age . ')'; } }
以下は、Contorollerクラス「personController.php」です。
php
1<?php 2 3namespace App\Http\Controllers; 4use App\Person; 5use Illuminate\Http\Request; 6 7class PersonController extends Controller 8{ 9 public function index(Request $request) 10 { 11 $items = Person::all(); 12 // var_dump($items); 13 // exit(); 14 return view('person.index',['items' => $items]); 15 16 } 17} 18
以下はルート情報を記載した「web.php」です
php
1<?php 2 3/* 4|-------------------------------------------------------------------------- 5| Web Routes 6|-------------------------------------------------------------------------- 7| 8| Here is where you can register web routes for your application. These 9| routes are loaded by the RouteServiceProvider within a group which 10| contains the "web" middleware group. Now create something great! 11| 12*/ 13 14 15// Route::post('hello','HelloContoroller@post'); 16 17//use App\Http\Middleware\HelloMiddleware; 18 19Route::get('hello/add','HelloController@add'); 20Route::post('hello/add','HelloController@create'); 21 22Route::get('hello','HelloController@index'); 23 24Route::get('hello/edit','HelloController@edit'); 25Route::post('hello/edit','HelloController@update'); 26 27Route::get('hello/del','HelloController@del'); 28Route::post('hello/del','HelloController@remove'); 29Route::get('hello/show','HelloController@show'); 30Route::get('person','PersonController@index'); 31 32
以下は、ビューファイルのindex.blade.phpです
php
1@extends('layouts.helloapp') 2 3@section('title','Person.index') 4 5@section('menubar') 6 @parent 7 インデックスページ 8 9@endsection 10 11@section('content') 12 <table> 13 <tr><th>Data</th></tr> 14 @foreach ($items as $item) 15 16 <tr> 17 18 <td>{{$item->getData()}}</td> 19 </tr> 20 @endforeach 21 </table> 22@endsection 23 24@section('footer') 25copyright 2017 tuyano. 26@endsection
上記コードにおきまして、「http:localhost/person」にアクセスすると、index.blade.phpの「$item->getData()」こちらの部分が処理され、テーブルに設定されたフィールドの値が表示されます。ここで疑問点なのですが、コントローラの「personController.php」内のコードで、「 $items = Person::all();」ここの後に、「 var_dump($items);」とし、$itemsの中身をみてみたのですが、getDataメソッドは存在していませんでした。
何故、getDataメソッドをindex.blade.phpの{{$item->getData()}}ここの部分で呼ぶことができるのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/24 07:28
2019/05/24 07:36
2019/05/24 07:38
2019/05/24 07:41
2019/05/24 07:44 編集
2019/05/24 07:48
2019/05/24 07:49
2019/05/24 08:03
2019/05/25 01:04 編集
2019/05/25 01:05
2019/05/25 01:09
2019/05/25 01:38
2019/05/25 01:45
2019/05/25 02:03
2019/05/25 02:11
2019/05/25 02:37