2016-02-09 70 views
1

的前值我在laravel)控制器類中,我有一個函數來創建(和可變附件我對阿賈克斯 我的類別代碼被調用函數。如何保護刪除類元素

class AttachmentController extends Controller 
{ 
    public $_attachments; 

    public function create() 
    { 

      $this->_attachments[]= 'test'; 

      var_dump($this->_attachments); 



    } 

問題是每當我通過ajax調用它時,它會返回我在附件數組索引處的「test」。但我想如果我打電話給創建函數第一次它給我測試0索引,但是當我下次調用它時。它給我「測試」0和1索引等。 如何可能請幫我

+0

因爲'_attachments'是一個數組。每次調用函數時,都會爲變量增加值。 –

+0

我添加在附件變量是一個數組值..但每次給我的「測試」 0指數..但我不希望它這樣我想如果通話功能有一段時間,給我數組(0 = >「試驗」),但是當我調用功能第二時間應該給我喜歡這個陣列輸出(0 =>「測試」,1 =>「測試」),但它仍然給我陣列(0 =>「測試」) –

+0

我無法理解你。你想如何輸出?給我舉個例子。 –

回答

0

要保留請求之間的值,你需要將它們存儲在某個地方,另一種方法是使用會話,作爲下面的例子中,爲更多的信息,請參閱https://laravel.com/docs/session

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

class AttachmentController extends Controller 
{ 
    public function create(Request $request) 
    { 
     $request->session()->push('attachments', 'test'); 
     var_dump($request->session()->get('attachments')); 
    } 
} 
+0

感謝上述解決方案並沒有解決問題,實際上我使用dropzone.js上傳附件。當我上傳單個單一文件,然後其工作正常,但我上傳多個文件,但它仍然無法工作 –

+0

所以,你想要一個接一個上傳並保存已上傳文件的名稱?或者你想一次上傳所有文件? –

0

嘗試這樣的事情。

$_attachments[] = Session::get('test'); 
$_attachments[] = 'test'; 
Session::get('test', $_attachments); 
dd(Session::get('test')); 

讓我知道如果這是你想要的。

0

由於HTTP驅動的應用程序是無狀態的,因此會話提供了一種途徑 來存儲跨請求的用戶信息。

class AttachmentController extends Controller 
{ 
    public function create() 
    { 
     $attachments = Session::get('attachments', array()); 

     $attachments[] = 'test'; 

     Session::put($attachments); 

     var_dump($this->_attachments); 
    } 
} 

進一步閱讀:Laravel Session