web-dev-qa-db-ja.com

コントローラーからビューにデータを渡すLaravel

ちょっとみんな私はlaravelに慣れていないので、テーブル 'student'のすべてのレコードを変数に保存してから、その変数をビューに渡して表示できるようにしようとしています。

私はコントローラーを持っています-ProfileControllerとその内部の関数:

    public function showstudents()
     {
    $students = DB::table('student')->get();
    return View::make("user/regprofile")->with('students',$students);
     }

私の見解では、私はこのコードを持っています

    <html>
    <head></head>
    <body> Hi {{Auth::user()->fullname}}
    @foreach ($students as $student)
    {{$student->name}}

    @endforeach


    @stop

    </body>
    </html>

私はこのエラーを受け取っています:未定義の変数:学生(View:regprofile.blade.php)

15
VP1234

これを試してもらえますか、

return View::make("user/regprofile", compact('students')); OR
return View::make("user/regprofile")->with(array('students'=>$students));

このように、複数の変数を設定できますが、

$instructors="";
$instituitions="";

$compactData=array('students', 'instructors', 'instituitions');
$data=array('students'=>$students, 'instructors'=>$instructors, 'instituitions'=>$instituitions);

return View::make("user/regprofile", compact($compactData));
return View::make("user/regprofile")->with($data);
15
Irfan Ahmed

表示する単一の変数を渡すため。

コントローラー内で次のようなメソッドを作成します。

function sleep()
{
        return view('welcome')->with('title','My App');
}

あなたのルートで

Route::get('/sleep', 'TestController@sleep');

あなたの見解Welcome.blade.php{{ $title }}のように変数をエコーできます

配列(複数の値)の場合、sleepメソッドは次のようになります。

function sleep()
{
        $data = array(
            'title'=>'My App',
            'Description'=>'This is New Application',
            'author'=>'foo'
            );
        return view('welcome')->with($data);
}

{{ $author }}のような変数にアクセスできます。

10
Bugfixer

In Laravel 5.6:

$variable = model_name::find($id);
return view('view')->with ('variable',$variable);
1
DelvinDuel

ベストで簡単な方法コントローラーから表示する単一または複数の変数を渡すには、compact()メソッドを使用します。

単一の変数をビューに渡すため
return view("user/regprofile",compact('students'));

複数の変数をビューに渡すため
return view("user/regprofile",compact('students','teachers','others'));

そして、ビューで変数を簡単にループできます。

@foreach($students as $student) {{$student}} @endforeach

1
Anand Mainali
public function showstudents() {
     $students = DB::table('student')->get();
     return (View::make("user/regprofile", compact('student')));
}
0
sathish

このコードで試してください:

Controller:
-----------------------------
 $fromdate=date('Y-m-d',strtotime(Input::get('fromdate'))); 
        $todate=date('Y-m-d',strtotime(Input::get('todate'))); 

 $datas=array('fromdate'=>"From Date :".date('d-m-Y',strtotime($fromdate)), 'todate'=>"To 
        return view('inventoryreport/inventoryreportview', compact('datas'));

View Page : 
@foreach($datas as $student)
   {{$student}}

@endforeach
[Link here]
0
Manirul Islam

これも試してみてください:

    public function showstudents(){
        $students = DB::table('student')->get();
        return view("user/regprofile", ['students'=>$students]);
    }

そして、view.bladeファイルでこの変数を使用して、学生の名前と他の列を取得します。

    {{$students['name']}}
0
Emmanuel Uko

このコードで試してください:

return View::make('user/regprofile', array
    (
        'students' => $students
    )
);

または、さらに多くの変数をビューに渡したい場合:

return View::make('user/regprofile', array
    (
        'students'    =>  $students,
        'variable_1'  =>  $variable_1,
        'variable_2'  =>  $variable_2
    )
);
0
Vanndy