2016-02-09 65 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