Witajcie,
Mam bardzo duży problem z relacjami przy Eager Loadingu w Laravel. Wygląda na straszny bug, ale pewnie oświecicie mnie, że jestem idiotą. No dobra, kto pierwszy pospieszy ze światłem :)? Poniżej uogólniony przykład, gdzie Produkt ma wielu kupujących, a kupujący ma profil użytkownika w osobnej tabeli.

Przy wywalonym Eager Loading, lub niedodawaniu SELECT/WHEREu wyłącznie wybranych pól - działa pięknie. W przypadku korzystania z EL - wszystkie relacje wywoałane z selectem lub
return $this->hasOne('Profil','iduser')->select(['name','surname']);

public function kupujacy($status = null) {

$relation = $this->hasMany('Kupujacy', 'idprodukt');


@hoRacy: mieszaj bardziej polski z angielskim, bo przecież tak trudno korzystać z poprawnego nazewnictwa...
Robię stronę w Laravel, gdzie można dokonywać rezerwacji terminów (formularz z chechbox'ami), po kliknięciu rezerwuj przenosi do strony gdzie wyświetlona jest lista wybranych rezerwacji. Tam mam przyciski do zatwierdzenia rezerwacji lub jej anulowania.

Nie mam pomysłu w jaki sposób powinienem przekazywać ID wybranych terminów do kontrolera, który zapisze to w bazie danych.
Po raz kolejny przesyłać je formularzem?
Zapisać te ID do sesji flash?
Czy może w trakcie dokonania rezerwacji tworzyć tymczasową
Z racji nauki L4 i ogólnie zgłębiania wiedzy stanąłem na walidacji formularzy, tzn. Ogólnie wszystko działa, pokazuje ładnie błędy itd. ale zamiast błędu na górze chciałbym podpiąć to pod input error z bootstrapa co by błędy pokazywał się przy inpucie gdzie wystąpił błąd a nie gdzieś zbiorczo z wszystkimi błędami.

Szukałem w dokumentacji czy nawet jakiś tutoriali ale jakoś nie mogłem nic wymyślić.

Tak to wygląda obecnie.
Kod: http://laravel.io/bin/nQx2v#9

Tak chciałbym aby
Pobierz loginzajetysic - Z racji nauki L4 i ogólnie zgłębiania wiedzy stanąłem na walidacji f...
źródło: comment_8AxVvRRCs6QsESykSgfrhgyMzQ8KOCxf.jpg
Czemu laravel pokazuje mi:

"Whoops, looks like something went wrong.
TokenMismatchException in compiled.php line 2357:"

gdy wysyłam formularz?

kontroler:
public function nameForm()
{
return view('nameform');
}

public function nameFormSent(Request $request)
{
return "Dziekujemy...";
}

widok:

routes.php:
Route::post('/form_step2', 'PostController@nameFormSent');

Dodam ze jak usunie sie "Request $request" z argumentów to i tak error będzie.
W laravel 4 identycznie robiłem i działało. W dokumentacji 5.0 czytałem i tez wygląda ok.

#php #programowanie #skryptowanie #laravel #
@dprg:

illuminate/html": "5.*"
do composer.json

potem z konsoli:

composer update
następnie edytujesz edytujesz

config/app.php
Do sekcji service providerów dodajesz:

'Illuminate\Html\HtmlServiceProvider'
Do aliasów:

'Form'=> 'Illuminate\Html\FormFacade',
'HTML'=> 'Illuminate\Html\HtmlFacade'

Voila
Które z frameworków php (poza #zend) umożliwiają integrację wyników zapytań bazodanowych z klasami typu Row / RowSet.
W Zend bardzo mi się podobało to, że w klasie modelu obsługującej operacje na tabelach, można było ustawić własną klasę do obsługi wyników zapytań i działać na nich, jak na obiektach. Chyba większość z innych, popularnych frameworków wypluwa dane jako tablice (np. #laravel). Czy znacie jeszcze jakieś frameworki, w których zostało to podobnie
@pilkarskiefakty_com: Dzięki, wiem że można samemu zrzutować na obiekt ale IMHO, przy wielu operacjach to zbyteczny narzut kodu, w Zend tworzyłem sobie np. klasę MyCustomRowSet dziedziczącą po ZendDbTableRowsetAbstract, w klasie modelu ustawiałem $_rowsetClass = 'MyCustomRowSet' i wszystko działo się tak magicznie. (ʘʘ) Niestety, Zend jest zbyt wolny i przesiadłbym się na jakiś bardziej nowoczesny framework ale najlepiej gdyby już posiadał właśnie taką funkcjonalność
Chcę przerobić swoją aplikację na single-page. Backend jest zrobiony w Laravel a front w Angular.
Czy robię to dobrze?
- widoki przykładowo /posts/:id
- API JSON dla Angulara /api/posts/:id
Wychodzi na to, że muszę dorabiać dodatkowo kolejny kontroler dla API, istnieje możliwość żeby zawrzeć to w jednym kontrolerze?
Czy moje podejście jest dobre, czy są do tego jakieś inne wzorce, jakieś rady?

#laravel #angularjs #webdev
#!$%@? dopiero co zainstalowałem #laravel z Sentry, a już nie chce działać ;_;
Wiem jak naprawić, ale dlaczego tak się dzieje skoro korzystam tak jak dokumentacja mówi?
Błąd:
  [Illuminate\Database\QueryException]
  SQLSTATE[42S22]: Column not found: 1054 Unknown column 'gravatar' in 'field
   list' (SQL: insert into 
*****users (emailpasswordactivatedg
  ravatarupdated
atcreated_at) values (*******@gmail.com, y$M34
  L5keIf/rLGcQKdhpV4eWuDByPV8DRCFdmgxzlxgipLV7EQK5N., 1, ******@gmail.c
  om, 2015-01-05 01:29:57, 2015-01-05 01:29:57))
``````
  [PDOException]
  SQLSTATE[42S22]: Column not found: 1054 Unknown column 'gravatar' in 'field
   list'
```Kod: ```
protected $userData = array(
        'email'      => 'cos',
        'password'   => 'cos',
        'activated'  => true
);
// Create the user
$user = Sentry::getUserProvider()->create($this->userData);
``````
// Associate the Admin group to this user
$group = Sentry::getGroupProvider()->findById(1);
$user->addGroup($group);

#programowanie #webdev #php
@Jacob:

Linia 3: use Closure; – importuje, żeby niżej móc pisać Closure zamiast \Closure (przestrzenie nazw)

Linia 50: Closure $queueResolver = null) – w konstruktorze przyjmuje funkcję anonimową jako argument – Closure jest tu po to, żeby umożliwić http://php.net/manual/en/language.oop5.typehinting.php – czyli upewnienie się, że przekazano argument właśnie z funkcją anonimową, a nie np napis.

Linia 53: $this->queueResolver = $queueResolver; – przypisuje do pola obiektu, żeby móc później użyć

Linia 122: call_user_func($this->queueResolver);
@Jacob: Czyli korzystając z Displatchera, robisz np:

$queueResolver = function () { /* whatever */ };
$dispatcher = new \Illuminate\Bus\Dispatcher($container, $queueResolver);
$dispatcher->dispatchToQueue($command); // tu zostanie użyta funkcja anonimowa (closure)