2014-07-23 31 views
5

Devam etmeyecek bir Oturum ile ilgili bir sorunum var. denetleyici olarakOturum Laravel'de çalışma yok 4

Ben düzenleme

public function getEdit($id) 
{ 
    try { 
     $news = News::findOrFail($id); 
     View::share('title', Lang::get('admin.editNews').": ".$news->title); 
     View::share('news', $news); 
     $this->layout->content = View::make('news.editNews'); 
    } catch (Exception $e) { 
     Session::flash('message', Lang::get('admin.noSuchNews')); 
     Session::flash('notif', 'danger'); 
     return Redirect::to("news"); 
    } 
} 

için yazı yükleyen bir fonksiyonu var Ve ben başka fonksiyonu var - bu hızlı mesaj göstermesi gerekir endeksi.

public function getIndex() 
{ 
    var_dump(Session::get('message')); 
} 

Oturum sadece kalıcı değil. Session::flash ile çalışmaz, Session::put ile çalışmaz.

Session::get('message') sadece her zaman null'dir.

ben uygulama yönlendirme böyle yaptığını belirtmeliyim tahmin:

Route::controller('news', 'NewsController'); 
+0

'url' => 'localhost', 

? –

+0

Evet. Bunu biliyorum çünkü “News :: findOrFail ($ id)” başarısız olursa görünümü yükleyecektir ve haber bulunmazsa "catch" a geçmelidir. Bu da işe yarıyor. '$ E-> getMessage() ' –

+0

yankılandı' '(' haber ') -> ile (' mesaj ',' your_message '); – Needpoule

cevap

3

Tamam, bunu düzelttim.

Şey ben session.php dosyasında bu

'domain' => '.mydomain.com', 

içine koyduk yani, Ama uygulama localhost hala beri benim Oturum sürücüsü olarak cookie kullanmıyor olsa, oturum ile her şey daha da başarısız oldu.

Ben
'domain' => '', 

bu değiştiğinde her şey

+0

Çözümünüzü takip ettim. Ama benim için çalışmıyor. – 2plus

0

Sen http://laravel.com/docs/session#session-drivers açıklandığı Oturum ayarlarını kontrol etmek isteyebilirsiniz.

En kolay yol, çerezleri oturumlar için kullanmaktır (ve tarayıcınızda çerezlerin etkin olduğundan emin olun).

Oturumları kaydetmek için file kullanıyorsanız, app/config/session.php'da tanımlanan depolama yolunun yazılabilir olduğundan emin olun.

+1

Veritabanı sürücüsü kullanıyorum ve her istek orada yeni bir satır oluşturur. Bazı istekler, oturum tablosunda –

+1

oturumunda iki satır bile oluşturabilir. Yazılabilir. Ama hala çalışmıyor. – 2plus

5

controller içerisinde Oturumu ayar fonksiyonunun dönüş durumunu kontrol çalışmaya başladı. Basit bir boş olsa bile bir şey döndürdüğünden emin olun.

Sadece aynı sorunu yaşadım ve bunu çözdüm. Gayet iyi aşağıdaki kullanmak başardı:

Route::get('session', function(){ 
    Session::put('current_user', 'Lionel Morrison'); 
    Session::put('user_id', '12345'); 

    var_dump(Session::all()); 
}); 

Route::get('get', function() { 
    var_dump(Session::all()); 
}); 

ama öyle böyle bir denetleyici kullanmış zaman bir null döndürdü kadar işe yaramadı; Eğer Oturum düzgün tasarrufu olmadığını bulursanız

public function setsession() { 
    Session::put('cat', 'Tom'); 
    Session::put('mouse', 'Jerry'); 

    return null; 
} 

public function getsession() { 
    dd(Session::all()); 
} 
+1

Bunun neden işe yaradığını gerçekten bilmek isterim. – Juddling

+0

Dunno, ama öyle. –

+0

geri dönen null bunu benim için yaptı! Teşekkürler –

2

, kurtarmak için zorlamak açıkça Session::save() arayarak deneyin.

0

"Auth :: attemptUsingId()" api yerine "Auth :: attempt()" api kullanarak oturum açmaya çalıştıysanız, başka bir istek için oturumu yok edecektir. Bu yüzden size tavsiye ederim, laravel 4 için session.php (config \ session.php \ driver)

0

'un "file" yerine "cookie" sürücüsünü kullanın.2

git app/config dir

düzenlemek app.php `getEdit` gerçekten` getIndex` önce denilen düzenleme session.php

'driver' => 'file', 
'cookie' => 'sitename_session', 
'domain' => null, 
'secure' => false, 
İlgili konular