php 查询数据传值,php-如何在Laravel中传递数据进行查看?

php-如何在Laravel中传递数据进行查看?

我使用$posts将数据传递到刀片视图,并在刀片视图中尝试运行@foreach ($posts as $post),但最终出现错误,提示未定义$posts。

我的问题是如何将$posts数组命名?

Sam Pettersson asked 2020-01-03T14:03:15Z

14个解决方案

75 votes

您可以使用with方法将数据传递到视图。

return View::make('blog')->with('posts', $posts);

Mostafa Adly answered 2020-01-03T14:03:24Z

49 votes

值得一提的是,从Laravel 5开始,将数据传递到视图的过程如下:

return view("blog", ["posts"=>$posts]);

要么:

return view("blog", compact("posts"));

文档可在此处获得。

miken32 answered 2020-01-03T14:03:53Z

11 votes

如果您只想传递一个变量来查看,则可以使用

在控制器中

return view('blog')->withTitle('Laravel Magic method.');

视野中

Post title is {{$title}}.

如果要传递多个变量进行查看,则可以使用

在控制器中

return view('blog')->withTitle('Laravel magic method')->withAuthor('Mister Tandon');

视野中

Post title is {{$title}}.Author Name is {{$author}}

Parvesh Kumar Tandon answered 2020-01-03T14:04:35Z

9 votes

您还可以将数组作为视图模板名称之后的第二个参数传递,而不是将一堆array_merge方法串在一起。

return View::make('blog', array('posts' => $posts));

或者,如果您使用的是PHP 5.4或更高版本,则可以使用更好的“短”数组语法:

return View::make('blog', ['posts' => $posts]);

如果要在其他位置计算数组,这将很有用。 例如,如果每个控制器都需要传递一堆变量,并且要将其与每个特定控制器唯一的变量数组结合在一起(例如,使用array_merge),则可以计算$variables( 其中包含一个数组!):

return View::make('blog', $variables);

(我是从头开始做的:让我知道语法错误是否滑入...)

iconoclast answered 2020-01-03T14:05:09Z

6 votes

use TCG\Voyager\Models\Jobtype;

class FormController extends Controller

{

public function index()

{

$category = Jobtype::all();

return view('contact', compact('category'));

}

}

使用你的模型

将其分配给变量

将对象传递到视图这是一个例子:

li bing zhao answered 2020-01-03T14:05:37Z

5 votes

提示1:

使用With(),这是最佳做法

return view('about')->withName('Author Willson')->withJob('Writer');

return View::make('home')->with(compact('about'))

return View::make('home')->with('comments', $comments);

提示2:

使用compact()

return view(about, compact('post1','post2'));

提示3:

使用第二个参数:

return view("about", ["comments"=>$posts]);

venkatSkpi answered 2020-01-03T14:06:18Z

4 votes

控制器:

use App\your_model_name;

funtion index()

{

$post = your_model_name::all();

return view('index')->with('this_will_be_used_as_variable_in_views',$post);

}

指数:

posts

@if(count($this_will_be_used_as_variable_in_views)>0)

@foreach($this_will_be_used_as_variable_in_views as $any_variable)

{{$any_variable->enter_table_field}}

{{$any_variable->created_at}}

@endforeach

@else

empty

@endif

希望这可以帮助! :)

kamal answered 2020-01-03T14:06:47Z

2 votes

你也可以这样

$arr_view_data['var1'] = $value1;

$arr_view_data['var2'] = $value2;

$arr_view_data['var3'] = $value3;

return view('your_viewname_here',$arr_view_data);

并且您访问此变量以查看为$var1,$var2,$var3

Sagar jadhav answered 2020-01-03T14:07:11Z

1 votes

您也可以用另一种方式做同样的事情,

如果您使用的是PHP 5.5或最新版本,则可以按照以下步骤进行操作,

控制器:

return view(index, compact('data1','data2')); //as many as you want to pass

视图:

You can access {{$data1}}. [if it is variable]

@foreach($data1 as $d1)

You can access {{$d1}}. [if it is array]

@endforeach

您可以通过相同的方式访问在紧凑函数中传递的所有变量。

希望能帮助到你 :)

Sagar Naliyapara answered 2020-01-03T14:07:53Z

1 votes

您可以使用with方法将数据传递到视图。

return view('greeting', ['name' => 'James']);

Jay Momaya answered 2020-01-03T14:08:14Z

1 votes

您还可以编写将多个数据从控制器传递到视图的方法

return \View::make('myHome')

->with(compact('project'))

->with(['hello'=>$hello])

->with(['hello2'=>$hello2])

->with(['hello3'=>$hello3]);

user9389401 answered 2020-01-03T14:08:35Z

0 votes

例如,您有一个包含数据的数组。

$array1 = $data;

$array2 = $data;

您可以从控制器使用compact传递此变量。 您可以根据需要传递任意数量的数组。

return view('data.index',compact('array1','array2'));

这里的data是视图中的文件夹,而index是扩展名为index.blade.php的文件

在视图中,您可以像这样调用数组

@foreach ($array1 as $something)

// some operation

@endforeach

user3677355 answered 2020-01-03T14:09:08Z

0 votes

您可以使用以下内容传递数据以在Laravel中查看:

public function contact($id) {

return view('contact',compact('id'));

}

TheName answered 2020-01-03T14:09:29Z

-4 votes

对于任何人来说,如果您有大量的变量要传递给视图,或者您希望变量可以同时被许多视图访问,那么这确实很乏味,这是另一种方法

在控制器中,将要传递的变量定义为<?php global $variable;?>,并将值赋予这些变量。

示例<?php global $variable;?>

现在,在视图顶部,只需执行

然后,您现在可以从视图中的任何位置调用变量,例如

{{$variable}}

希望这对某人有帮助。

tkc answered 2020-01-03T14:10:16Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值