小编ofm*_*oon的帖子

Laravel Collection 方法 has() 和 contains() 之间的区别

我在理解 Laravel Collection 方法has()contains().

contains() 方法接受单个值、参数的键值对或回调函数,并返回集合中是否存在该值的布尔值。

基本上,它根据值的存在返回一个布尔值。

has() - 如果集合中存在键值,则返回布尔值。

这还根据值的存在返回一个布尔值?

不知怎的,我不明白它们之间的区别。
我希望有人可以向我解释或分享一些有用的链接,我将非常感激。

php collections contains laravel

3
推荐指数
1
解决办法
2782
查看次数

Laravel中间件中的'return $ next($ request)'是做什么的?

请尊重我是编程和Laravel的新手,所以这个问题对于大多数人来说似乎有些奇怪。
但是我认为这是stackoverflow的目的,所以:

当我使用命令创建一个新的中间件时,php artisan make:middleware setLocale已经有了handle-function并带有以下代码:

return $next($request);

我想知道这行到底是做什么的。

closures middleware laravel

2
推荐指数
2
解决办法
606
查看次数

Laravel:将文件存储在存储路径的子目录中

我有以下文件夹结构:

-storage 
  -app
    -orders
      -cat1
      -cat2
Run Code Online (Sandbox Code Playgroud)

在 或 文件夹中cat1cat2取决于用户输入)我想创建另一个文件夹并在其中放置一个 xml 文件。
这就是我尝试在 -folder 中创建目录cat1并将 xml 文件放入其中的方法:

$uuid = Uuid::uuid4();
$id = $uuid->toString();
$path = '/orders/cat1/'.$id;
Storage::makeDirectory($path, 0755, true, true);
Storage::put($id.'test.xml', $xml);
Run Code Online (Sandbox Code Playgroud)

会发生什么:
文件夹($id 作为名称)被创建在正确的位置:

-storage
  -app
    -orders
      -cat1
        -123456789
      -cat2
Run Code Online (Sandbox Code Playgroud)

但 xml 将存储在此处的另一个文件夹中:

-storage
  -app 
    -123456789   // xml gets stored in another
       -test.xml // folder within app-folder
    -orders
       -cat1
          -123456789 // where the xml should be placed
       -cat2
Run Code Online (Sandbox Code Playgroud)

我似乎可以找到一种方法将 xml 放入我刚刚创建的目录中._。

php storage directory-structure file laravel

2
推荐指数
1
解决办法
3764
查看次数

在 Laravel 中存储错误消息的最佳方式(会话或变量)

我试图找出存储错误消息的最佳方法(例如由于参数错误)。

假设我在控制器中声明接受的参数,但如果给出了任何其他参数,我想显示一个页面,仅显示错误消息“给出了错误的参数”。
非常简单的代码示例:

if ($param == 'example') {
  // some code
} else {
  // accepting no other parameter and should return a page with an error message
  // session? variable?
}
return view('index/example');
Run Code Online (Sandbox Code Playgroud)
  1. 我可以使用一些会话,例如:

    • 正常会话:session()->put(...)
      问题:如果我不手动删除数据,数据就会保留

    • 向会话闪烁一条消息:session()->flash(...)
      问题:这是为了下一个请求,所以当我更正错误的参数时,我必须重新加载两次才能加载正确的页面

    • 当前请求的会话:session()->now(...);
      问题:??

  2. 我还可以使用普通变量:

    • $error = 'message;
      return view('index', compact('error'));
      问题:如果不手动删除,带有错误消息的变量将被保留

我知道会话闪现消息是为此类消息创建的,但我真的不想使用它,因为我上面已经简短地解释了这个问题。

我想了解每种方法的(缺点)优点,以及哪种方法最好,或者是否有推荐的方法实际上效果很好。

php variables session notifications laravel

0
推荐指数
1
解决办法
1万
查看次数