我在理解 Laravel Collection 方法has()
和contains()
.
contains() 方法接受单个值、参数的键值对或回调函数,并返回集合中是否存在该值的布尔值。
基本上,它根据值的存在返回一个布尔值。
has() - 如果集合中存在键值,则返回布尔值。
这还根据值的存在返回一个布尔值?
不知怎的,我不明白它们之间的区别。
我希望有人可以向我解释或分享一些有用的链接,我将非常感激。
请尊重我是编程和Laravel的新手,所以这个问题对于大多数人来说似乎有些奇怪。
但是我认为这是stackoverflow的目的,所以:
当我使用命令创建一个新的中间件时,php artisan make:middleware setLocale
已经有了handle
-function并带有以下代码:
return $next($request);
我想知道这行到底是做什么的。
我有以下文件夹结构:
-storage
-app
-orders
-cat1
-cat2
Run Code Online (Sandbox Code Playgroud)
在 或 文件夹中cat1
(cat2
取决于用户输入)我想创建另一个文件夹并在其中放置一个 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 放入我刚刚创建的目录中._。
我试图找出存储错误消息的最佳方法(例如由于参数错误)。
假设我在控制器中声明接受的参数,但如果给出了任何其他参数,我想显示一个页面,仅显示错误消息“给出了错误的参数”。
非常简单的代码示例:
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)
我可以使用一些会话,例如:
正常会话:session()->put(...)
问题:如果我不手动删除数据,数据就会保留
向会话闪烁一条消息:session()->flash(...)
问题:这是为了下一个请求,所以当我更正错误的参数时,我必须重新加载两次才能加载正确的页面
当前请求的会话:session()->now(...);
问题:??
我还可以使用普通变量:
$error = 'message;
return view('index', compact('error'));
我知道会话闪现消息是为此类消息创建的,但我真的不想使用它,因为我上面已经简短地解释了这个问题。
我想了解每种方法的(缺点)优点,以及哪种方法最好,或者是否有推荐的方法实际上效果很好。
laravel ×4
php ×3
closures ×1
collections ×1
contains ×1
file ×1
middleware ×1
session ×1
storage ×1
variables ×1