2016-08-02 8 views
5

w moim modelu mamjaki sposób laravel wyszukuje połączenia między modelami i jego tabeli w bazie

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Page extends Model 
{ 
    // 
} 

w moim kontrolera mogę powiedzieć Page:all() i uzyskać wszystkie wiersze z pages tabeli ale nie widzę żadnego związku między Page model i pages tabela w bazie danych

to tylko odgadnąć nazwę tabeli na podstawie nazwy modelu (małe litery z dodatkowymi s na końcu) lub jest wspomniany gdzieś indziej?

Odpowiedz

4

Jak widać w docs, to jest magia laravel :-)

https://laravel.com/docs/5.2/eloquent#defining-models (patrz nazwy tabel)

Jeśli chcesz, możesz ustawić inną nazwę ręcznie przez użytkownika następujących

protected $table = 'my_table_name';

I pójść nieco dalej, to jak laravel pobiera nazwę tabeli w bazowym modelu można znaleźć na /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php

/** 
* Get the table associated with the model. 
* 
* @return string 
*/ 
public function getTable() 
{ 
    if (isset($this->table)) { 
     return $this->table; 
    } 

    return str_replace('\\', '', Str::snake(Str::plural(class_basename($this)))); 
} 
Powiązane problemy