2017-05-09 12 views
1

私は自分のDBを持っています。すでにすべてを移行しました。私のコードは必要に応じてテーブルに新しいエントリを記録することができます。Laravel 5.2 .bladeビューを使ってテーブルを表示する

私は 'id'、 'name'、 'lastname'、 'email'、 'phone'、 'address'の内容のテーブルを持っています。

私が望むのは、送信ボタンを押すと、新しい 'view.blade.php'にリダイレクトされ、最新のものも含めてすべてのDBのエントリが表示されます。しかし、私はそれを動作させるためにこのコードを開発する方法を知らない。

私はそれを助けてください。 ありがとうございます。

+0

あなたが送信ボタンを打ったとき、あなたは、コントローラに送信デシベルに詳細を保存し、その後view.blade.php戻ってきていますか? –

+0

このチュートリアルを見る:それは金です。 https://laracasts.com/series/laravel-5-fundamentals – Amarnasan

+0

はい、Sapnesh。 私はsubmitを押して、私のDBにデータを送り、view.blade.phpにリダイレクトされます。 しかし、このブレードは空白で、そこには何もありません。私はここに私のテーブルを示したい。 –

答えて

3

コントローラ機能では、新しいレコードをテーブルに保存した直後にこれを実行します。 お使いのモデル名がUser

、Userモデルから

$users = App\User::all(); 

(あなたview.blade.phpresources/viewsフォルダ内にあると仮定した場合)を表示するには、このユーザーは、変数のパス

return View::make('view', compact('users')); 
を、すべてのユーザレコードをフェッチであると仮定すると

あなたのview.blade.phpこのような操作を行うと、すべてのユーザーレコードを表示できます。私が書く必要があります

<table> 
    <thead> 
     <tr> 
      <th> id</th> 
      <th> name</th> 
      <th> last name </th> 
      <th> email </th> 
      <th> phone</th> 
      <th> adddress </th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach($users as $user) 
      <tr> 
       <td> {{$user->id}} </td> 
       <td> {{$user->name}} </td> 
       <td> {{$user->last_name}} </td> 
       <td> {{$user->email}} </td> 
       <td> {{$user->phone}} </td> 
       <td> {{$user->address}} </td> 
      </tr> 
     @endforeach 
    </tbody> 
</table> 
+0

とても簡単です。できます。 ありがとうございます。 = D –

+0

foereachを起動する前に、ユーザー数が0より大きいかどうかを常に確認する必要があります。 –

+0

はい、Mihir。私のテーブルにはすでにいくつかの情報がありました(私は別のプログラム、DBeaverでそれを見ていました)、私はそれを見落としましたが、それは良い入力です。ありがとうございました。 –

0

//form.blade.php

<form method="post" action="{{ route('submitForm') }}"> 
    {!! csrf_field() !!} 
    <input type="text" name="name"/> 
    <input type="text" name="last_name"/> 
    <input type="text" name="email"/> 
    <input type="text" name="phone"/> 
    <input type="text" name="address"/> 
</form> 

<?php 
//app/Http/controllers/YourController.php 
namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\User; 

//user is your eloquent model 

class YourController extends Controller 
{ 

    //show user form 
    public function showForm() 
    { 
     return view('form'); 
    } 

    //post url for submit form 
    public function submitForm(Request $request){ 

     $this->validate($request, [ 
      'name' => 'required|min:2|max:30', 
      'lastname' => 'required|min:2|max:30', 
      'email' => 'required', 
      'phone' => 'required', 
      'address' => 'required' 
     ]); 

     $user = new User(); 
     $user->name = $request->name; 
     $user->lastname = $request->lastname; 
     $user->email = $request->email; 
     $user->phone = $request->phone; 
     $user->address = $request->address; 
     try{ 
      $user->save(); 

      return redirect()->route('showAllusers')->with('success', "User was successfully created..!"); 
     } 
     catch(Exception $e){ 
      return redirect()->back()->with('error', "Could not save the user!"); 
     } 
     return redirect()->back()->with('error', "Error Occured, please try again!"); 

    } 

    // after form submit, redirect to this page where all users will be showcased 
    public function showAllusers() 
    { 
     $users = User::all(); 

     return view('allusers', compact('users')); 
    } 

} 
?> 

//allusers.blade.php

@if($users->count > 0) 
    <table> 
     <thead> 
      <tr> 
       <th> id</th> 
       <th> name</th> 
       <th> last name </th> 
       <th> email </th> 
       <th> phone</th> 
       <th> adddress </th> 
      </tr> 
     </thead> 
     <tbody> 
      @foreach($users as $user) 
      <tr> 
       <td> {{$user->id}} </td> 
       <td> {{$user->name}} </td> 
       <td> {{$user->last_name}} </td> 
       <td> {{$user->email}} </td> 
       <td> {{$user->phone}} </td> 
       <td> {{$user->address}} </td> 
      </tr> 
      @endforeach 
    </tbody> 
    </table> 
@else 
    <p> No users found..</p> 
@endif 

//routes.php

<?php 
Route::get('/showForm', '[email protected]')->name('showForm'); 
Route::post('/submitForm', '[email protected]')->name('submitForm'); 
Route::get('/showAllusers', '[email protected]')->name('showAllusers'); 

?> 
+0

それは働く!ありがとうございました! –

0

このコードをすべて表示するusersテーブルデータ:

//Function for store users data 

public fucntion store(Request $request){ 
    $insertData = DB::table('users')->insert(array(
               'name'=>$request->name, 
               'lastname'=>$request->lastname, 
               'email'=>$request->email, 
               'phone'=>$request->phone, 
               'address'=>$request->address 


)); 

return Redirect::to('/view') 

} 


//fucntion for display users data 
public fucntion view(){ 

$rsltUsers = User::get(); 

return view('view', compact('rsltUsers')); 


} 

view.blade.php

<table class="table table-striped table-bordered table-hover"> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Last Name</th> 
     <th>Email</th> 
     <th>Phone</th> 
     <th>Address</th> 
    </tr> 
    </thead> 
    <tbody> 
    @foreach($rsltUsers as $rsltUser) 
    <td>{!! $rsltUser->name !!}</td> 
    <td>{!! $rsltUser->lastname !!}</td> 
    <td>{!! $rsltUser->email !!}</td> 
    <td>{!! $rsltUser->phone !!}</td> 
    <td>{!! $rsltUser->address !!}</td> 

@endforeach 
    </tbody> 
</table> 
+0

それも動作します、ありがとうございます。 –

+0

@ G.Felicio素晴らしい、喜んで助けてください。これがあなたの答えであれば、それを受け入れられた回答としてマークしてください –

関連する問題