了解Laravel:请解释“-> with('i',($ request-> input('page',1)-1)* 5);“

查哈尔

请原谅我问一个可能是初学者的问题。只是我真的在网上搜索而没有找到答案!SOF似乎是我发疯之前的最后选择。

我的问题是,我根本无法理解以下代码行的作用:

->with('i', ($request->input('page', 1) - 1) * 5);

它位于我的Controller index(request $ Request)方法中。

整体看起来像这样:

public function index(Request $request)
{
    $books = Book::indexBooks()->paginate(20);
    return view('bookCRUD.index', compact('books'))
        ->with('i', ($request->input('page', 1) - 1) * 5);
}

另一个用户写了这个,但是我听不懂。

该代码将获得所有产品的前5名,并按产品ID降序排列。然后将产品数据传递到ProductCRUD目录中名为index.blade.php的视图中。您可以在yourproject / resources / views上找到该目录。它还会闪烁一个名为i的会话变量(在视图中,您可以使用$ i来访问该变量),该变量具有名为page的输入/查询字符串形式的值(如果存在)。否则,$ request-> input('page',1)=1。根据该变量的使用,$ i将充当网格上每个页面的起始行号。

我将是最有建设性的答案!

肯尼·霍纳(Kenny Horna)

with()方法用于将数据发送到视图。

文档使其更加清晰:

将数据传递到视图

如前面的示例所示,您可以将数据数组传递给视图:

return view('greetings', ['name' => 'Victoria']);

以这种方式传递信息时,数据应为具有键/值对的数组。然后,您可以在视图内部使用其对应的键(例如)访问每个值<?php echo $key; ?>作为将完整的数据数组传递给viewhelper函数的替代with方法,您可以使用该方法向视图中添加单个数据:

return view('greeting')->with('name', 'Victoria');

如您所见,with()接受两个参数:

  • 第一个(字符串)定义将返回到视图的变量的名称
  • 第二个参数指定此变量将获得的实际值。

因此,在您提供的代码中:

return view('bookCRUD.index', compact('books'))
         ->with('i', ($request->input('page', 1) - 1) * 5);

这意味着在视图中bookCRUD.index.blade.php$i变量将可用,并且其值将是的结果$request->input('page', 1) - 1) * 5

因此,您可以使用它来做一些事情,例如:

<p> The interesting value is: {{ $i }} </p>

额外:

以下语句是等效的:

return view('a_nice_view')->with('manager', $user);

与另外一个:

return view('a_nice_view')->withManager($user); // sugared.

在这种情况下,这两个语句将使变量可用,$manager以便在视图中使用。


更新资料

与您的问题的第二部分有关,他/她说的是该行将返回5个产品。对于外观,他/她指的是compact('books')零件。这将向视图返回一个变量(我可以假设是一个Book对象集合)。

用法说明的其余内容只是您所要求内容的解释。唯一的细节是用户正在解释$i变量将获得的他/她正在使用$request->input('field', 'default_variable')来检索输入。检查文档

检索输入值

使用一些简单的方法,您可以访问Illuminate\Http\Request实例中的所有用户输入,而不必担心该请求使用了哪个HTTP动词。无论HTTP动词如何,均可使用input方法来检索用户输入:

$name = $request->input('name');

您可以将默认值作为第二个参数传递给输入法。如果请求中没有请求的输入值,则将返回此值:

$name = $request->input('name', 'Sally');

因此,正如您所看到的..这样做$request->input('page', '1')意味着,如果page在请求中定义了字段,它将获得该值,如果不存在,则默认值为1只是。

这样看:

public function index(Request $request)
{
    $books = Book::indexBooks()->paginate(20);
    $value = ($request->input('page', 1) - 1) * 5; // this resolves the value to be retuned
    // so, if 'page' is defined in the request it will get the value.
    // if not, it will be '1', so doing the math: $value = 0.

    return view('bookCRUD.index', compact('books'))
        ->with('i', $value);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel 5 $ request-> input与Input :: get

了解“ 5 1”的类型

`int main(i){printf(“ i =%d \ n”,i); 我的价值是1。为什么?请解释?

Laravel request-> input('')或old('')总是在刀片中返回1

为什么以下递归代码的输出是 5 3 1 1 3 5?不应该是 5 3 1 -1 1 3 5。?该函数也由 -1 调用。?请解释?

量子V门1 / sqrt(5)(I + 2iZ)

使用每秒的i(i = 1,3,5,....)切换列中每行i和i + 1的顺序

请解释这个语句(cout << 1 + int((a < b) ^ ((b - a) & 1)) << endl)

解释此序列的执行:x = j || i ++ && 1

为什么 1+1 的 sizeof 是 5?

在Python字典中,((j * 5)+1)%2 ** i如何遍历所有2 ** i

Laravel 5:使用SHA1代替Bcrypt

Laravel 5 未定义偏移量:1

Laravel5响应“ HTTP状态代码“ 1”无效。”

Laravel 5-检索Blob文件会返回TRUE或1

系列:1 + 1/3 + 1/5 + ...最多N个词

什么是“ int(i)= 1;”?

ValueError:检查输入时出错:预期gru_5_input具有形状(无,无,10),但数组的形状为(1、4、1)

ValueError:无法将字符串转换为<module>()中的float <ipython-input-5-1a15d1ec0505>

sum(1 / prime [i] ^ 2)> = 1?

检查输入时出错:预期 lstm_1_input 有 3 个维度,但得到形状为 (5, 3) 的数组

输入:-我爱印度输出:-I1 Love4 India5

在IBM i5 / os V6R1上安装PHP

C ++ i + = 1到i = i + 1的快捷方式?

1and1 .htaccess 指令:需要解释

解释在C中for(i = 0; 1; i ++)的作用是什么?

Laravel 5 input ::获取错误

使用循环将从Page#2,3,4,5 ...中提取的数据帧附加到从Pandas python中coingecko的Page#1中提取的数据帧

使用sda1 sda2 sda5了解分区表