简体   繁体   English

如何在不使用LARAVEL中的PHP“紧凑”功能的情况下使用视图

[英]How to work with Views without using PHP's “compact” function in LARAVEL

I'm working on laravel to fetch data from database and store that data or array of data into the variable like $tasks store data of tasks table from database up till everything is fine but during processing the $task variable it is necessary to use "compact" function ? 我正在laravel上进行工作,以从数据库中获取数据并将数据或数据数组存储到变量中,例如$ tasks从数据库中存储任务表的数据直到一切都很好,但是在处理$ task变量期间,必须使用“紧凑”功能?

And can anyone explain this 谁能解释一下

Route::get('/test', function () {

$data   =   [
                'name'  =>  'Vrushal',
                'last'  =>  'Raut',
                'tasks' =>  [
                                'Programming',
                                'UI/UX Developement',
                                'Cloud Expert'
                            ]
            ];
            //return view('templates/test', compact($data)); //NOT WORKING
            //return view('templates/test', $data); // ITS WORKING
            return View::make('templates/test',$data); // ITS WORKING
}); 

As well as with Database plz explain this 以及与Database plz一起解释这一点

Route::get('/tasks', function(){

$tasks  =   DB::table('tasks')->get();

return view('templates/tasks', compact('tasks')); // ITS WORKING
//return View::make('templates/test',$tasks); // NOT WORKING
});

Thanks in Advance! 提前致谢!

compact('data') is the same as ['data' => $data] , so to be able to access Vrushal value, you'll need to do this in the view: compact('data')['data' => $data] ,因此要访问Vrushal值,您需要在视图中执行此操作:

{{ $data['name'] }}

When you do this: 执行此操作时:

 View::make('templates/test', $data);

You can get Vrushal value with: 您可以通过Vrushal方式获得Vrushal值:

{{ $name }}

compact — Create array containing variables and their values Manual http://php.net/manual/en/function.compact.php compact —创建一个包含变量及其值的数组手册http://php.net/manual/zh/function.compact.php

<?php

$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$result = compact("event", "city", "state");
print_r($result);
//return view('templates/test', compact("event", "city", "state")); // ITS WORKING

Result 结果

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

$arr = array(
    "city"  => "San Francisco",
    "state" => "CA",
    "event" => "SIGGRAPH"
);

extract($arr);    
$result = compact(array_keys($arr));
print_r($result);
//return view('templates/test', compact(array_keys($arr)); // ITS WORKING

Result 结果

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

$arr = array(
     "city"  => "San Francisco",
     "state" => "CA",
     "event" => "SIGGRAPH"
);
print_r($arr);
//return view('templates/test', $data); // ITS WORKING

Result 结果

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

$arr = array(
     "city"  => "San Francisco",
     "state" => "CA",
     "event" => "SIGGRAPH"
);
$result = compact($arr);
print_r($result);
//return view('templates/test', compact($arr)); //NOT WORKING

Result 结果

Array
(

)

//return view('templates/test', compact($data)); //NOT WORKING //return view('templates/test', compact($data)); //NOT WORKING its not working because you don't need dollar sign for compact elements. //return view('templates/test', compact($data)); //NOT WORKING它不起作用,因为紧凑的元素不需要美元符号。 It should look like this: 它看起来应该像这样:

return view('templates.test', compact('data')); and then you can access it by $data[] variable inside view. 然后可以通过视图内的$ data []变量访问它。

Other way: 另一种方式:

return view('templates.test')->with('variable', $data); and accessing this in view with $variable[] 并使用$variable[]访问此视图$variable[]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM