2014-03-06 91 views
0

在Laravel 4中,我希望能夠通過訪問鏈接或按鈕將新視圖追加到現有視圖。我該怎麼做?提前致謝。將視圖追加到現有視圖

+0

您是否在談論嵌套的意見?此外,澄清'通過訪問鏈接或按鈕'並顯示您目前嘗試使用的當前代碼。 –

+0

也許我不熟悉嵌套視圖,但是我希望在按下鏈接或按鈕時將新視圖追加到現有視圖。更確切地說,兩個視圖只有在按下按鈕時纔會呈現。在此之前,只有主視圖纔會呈現。我的代碼只是簡單而且簡單,即使我沒有按下鏈接,這兩個視圖也會呈現。我在主視圖中使用@include。我不知道要展示什麼,因爲這不是我想要的。這對我來說只是一個理論。 –

回答

1

您可能會想要使用ajax,發出ajax請求,將動作設置爲呈現附加視圖的路由。在你的父視圖中創建一個ID爲「附加」的div,然後在ajax成功設置附加div的內容到你從ajax請求收到的數據,它解決了你的想法...但是id不推薦這個想法本身,它的使用這種方法不容易控制頁面的結構...更好的解決方案是,如果您已經擁有主視圖然後創建子主視圖,那麼可以使用主視圖來生成其他視圖

+1

謝謝你指導我。 –

0

挖掘到嵌套Laravel 4的觀點,我設法做到了我想要的。畢竟這不是什麼大不了的事情。在控制器中,我已經完成了這項工作

$selected_char = User::find(Auth::user()->id)->character()->where('char_name', '=', $character)->first(); 
$title_list = Character::find($selected_char->id)->title()->get(); 
$data = array(); 
       $data['title_list'] = $title_list; 
      return View::make('layout.profile') 
        ->nest('title_details', 'layout.titledetail', $data); 

嵌套方法的第三個參數必須是一個數組。然後,您可以用

titledetail.blade.php訪問子視圖的信息

@section('title-content')   

    @foreach($title_list as $t) 

    <div class="infocontainer"> 
     <br> {{$t->char_title}} of {{$t->title_name}} {{$t->title}}      

    </div> 

    @endforeach 

    @endsection 

我在這裏做的是,我創建了一個新的div名爲「infocontainer」對於每個記錄我的對象保存。你不必這樣做。 在你專門去到div主視圖,您希望把這些孩子視圖和產量有子視圖:

<div class="example"> 
@yield('title-content') 
</div> 

你甚至都不需要@include(「標題內容」)剛它產生在指定的div 你甚至可以從控制器

return View::make('layout.profile') 
        ->nest('title_details', 'layout.titledetail', $data) 
        ->with('example_var1', $example_var1) 
        ->with('example_var1', $example_var1) 

甚至巢補充意見發送額外的變量。

return View::make('layout.profile') 
        ->nest('title_details', 'layout.titledetail', $data) 
        ->nest('add_title_details', 'layout.addtitledetails', $data) 

不要忘記把新的嵌套視圖的額外變量放在$ data數組中。例如,如果您希望通過訪問鏈接或按下第一個嵌套視圖中的按鈕來呈現第二個嵌套視圖,則會出現這種情況。

而這是非常多的。我甚至開始用Javascript做這個。但是,不,你擁有的是非常強大的。我希望這對我有幫助。