Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny][Laravel4] Odwołanie się modelu z poziomu kontrolera (pobranie danych z MySQL)
in5ane
post
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cześć, zacząłem się bawić frameworkiem Laravel 4. Chciałem pobrać dane z bazy danych, ale nie wiem za bardzo jak się za to zabrać. Tak chciałem zrobić model:
  1. <?php
  2.  
  3. class Home extends Eloquent {
  4.  
  5. public function getNews()
  6. {
  7. $results = DB::select('select * from news');
  8. }
  9.  
  10. }

Czy w tej funkcji wystarczy coś w tym stylu? Jak zwrócić (jakie return) dane?

I teraz kontroler, jak się z niego dobrać do tego modelu, robię coś takiego:
  1. <?php
  2.  
  3. class HomeController extends BaseController {
  4.  
  5. public function showIndex()
  6. {
  7. // co tutaj?
  8. return View::make('home');
  9. }
  10.  
  11. }


Osobiście dla mnie dokumentacja Laravela troszkę kuleje w niektórych kwestiach. Proszę o nakierowanie, dalej już będę kombinował sam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Nie rozumiem dlaczego narzekasz na dokumentację. Ja znalazłem to co chciałeś w parę sekund.
Eloquent to jest Active Record więc byłoby dobrze dla Ciebie gdybyś się zapoznał z tym wzorcem.
Model Home? Jaki jest jego sens? Domyślam się, że chciałeś mieć model News. W kontrolerze możesz to potem sobie pobrać tak jak w przykładach z dokumentacji (tutaj albo tutaj).
Go to the top of the page
+Quote Post
in5ane
post
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Model Home chcę dla strony głównej, na której będę pobierał ostatnie 2-3 newsy oraz inne informacje z bazy danych.
Go to the top of the page
+Quote Post
pitu
post
Post #4





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


W modelu i metodzie getNews() zwróć tą wartość. Natomiast w kontrolerze:
  1. $news = Home::getNews();


Ten post edytował pitu 18.07.2013, 16:30:41
Go to the top of the page
+Quote Post
destroyerr
post
Post #5





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Cytat
Model Home chcę dla strony głównej, na której będę pobierał ostatnie 2-3 newsy oraz inne informacje z bazy danych.

Nie tędy droga. Skoro chcesz 3 newsy to w modelu stwórz sobie metode np. News::scopeLatest($query, $count = 3).

Ten post edytował destroyerr 18.07.2013, 16:56:00
Go to the top of the page
+Quote Post
nrm
post
Post #6





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Dokumentacja L4 faktycznie nie jest na razie zbyt wylewna ale muszę się zgodzić z @destroyerr to o co pytasz akurat w niej jest, zresztą stanowi taką w zasadzie niezależną od FW podstawę.

Masz to opisane tutaj: http://laravel.com/docs/queries

Ten post edytował nrm 18.07.2013, 16:56:15
Go to the top of the page
+Quote Post
in5ane
post
Post #7





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Zrobiłem to w taki sposób w kontrolerze:
  1. $news = Home::getNews();
i w modelu:
  1. public static function getNews()
  2. {
  3. return DB::table('news')->orderBy('date', 'desc')->take(3)->get();
  4. }
Czy takie coś jest poprawnie?

Ten post edytował in5ane 18.07.2013, 19:41:04
Go to the top of the page
+Quote Post
destroyerr
post
Post #8





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Nie.
Go to the top of the page
+Quote Post
pitu
post
Post #9





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Dlaczego tworzysz taką 'sztywną' metodę? Powyżej @destroyerr podał przykład metody w modelu News, którą byś wywoływał.
Go to the top of the page
+Quote Post
in5ane
post
Post #10





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Dzięki, na ten moment wiem wszystko.

Ten post edytował in5ane 18.07.2013, 20:42:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 06:46