November 29, 2016 —John Koster
add($key, $message)
The add
method adds a new message to the MessageBag
instance. The message is identified by a given $key
and contains the value $message
. The add
method returns a reference to the current MessageBag
instance.
The following code example demonstrates how to add messages to a MessageBag
instance:
1<?php 2 3use Illuminate\Support\MessageBag; 4 5// Create a new MessageBag instance. 6$messageBag = new MessageBag; 7 8// Add new messages to the message bag. 9$messageBag->add('hello', 'The first message bag message');10$messageBag->add('world', 'The second message');11 12// Get an array of all the messages.13$messages = $messageBag->getMessages();
After the above code has executed, the $messages
variable will be an array and contain a value similar to the following output:
1array (size=2)2 'hello' =>3 array (size=1)4 0 => string 'The first message bag message' (length=29)5 'world' =>6 array (size=1)7 0 => string 'The second message' (length=18)
The add
method allows multiple messages to be stored under a given $key
as long as the key/message pair is unique. As an example, another message can be supplied for the hello
key like so:
1<?php2 3$messageBag->add('hello', 'This is a different hello');
And the output would then change to the following:
1array (size=2)2 'hello' =>3 array (size=2)4 0 => string 'The first message bag message' (length=29)5 1 => string 'This is a different hello' (length=25)6 'world' =>7 array (size=1)8 0 => string 'The second message' (length=18)
The $key
supplied to the add
method should make sense in some context. The examples so far have been fairly arbitrary, and are mainly designed to explain the concepts that are being presented. However, MessageBag
instances are most commonly encountered during validation scenarios.
In cases like HTML form validation, the $key
will generally be the name of the form element being validated. Assuming the following HTML form element:
1<input type="text" name="username" />
Messages relating the username
field could be stored like so:
1<?php 2 3use Illuminate\Support\MessageBag; 4 5// Create a new MessageBag instance. 6$errors = new MessageBag; 7 8// Add example error messages to the MessageBag instance. 9$errors->add('username',10 'The username field must longer than 5 characters');11$errors->add('username',12 'The username field must contain a special character');
This article is the start of a mini-series about Laravel's ErrorMessageBag
component. Click through the rest of the articles to continue reading:
∎
The following amazing people help support this site and my open source projects ♥️
If you're interesting in supporting my work and want to show up on this list, check out my GitHub Sponsors Profile.