Skip to content

Saving JSON Objects in Laravel 5

Posted in Personal

Now, a couple of days ago, I started struggling my way through getting up and running with Laravel 5. If you’ve seen many of my articles, you’ll realize how Django-ish and Ionized some of them are.

PHP wasn’t my thing until I had to come up to speed with one of the world’s most used programming languages via the form of Laravel – a popular PHP Web application framework.

Why PHP? For a job application review process, but I guess if not for the job application, I would have missed out on this awesome framework. Gradually liking this tool more and more!

Lemme share my experience using Laravel with you later in a separate article. For now, let’s talk about how to save a JSON Object in Laravel. Very quickly!

The Model

Let’s say you’re building an app, a hypothetical one, where you’ll wanna nest multiple form inputs into a single field. That’s the preamble. So let us unwind the process gradually.

Only the first bullet in the list below is tightly related to our JSON-object-saving. So the above, in English:

  • Cast incoming/outgoing data on the the_field as an array. Other types are available.
  • Accept data allowed should come from only title and the_field
  • The protected $table ensures Eloquent doesn’t add ‘s’ to our model, so we want to maintain our model name as mymodel and not mymodels

With the above out of the way, let us consider how our incoming data should be shaped:

Then we have to chew on the incoming data in our controller and pass it on to the model for absorption.

Controller

We do so in our controller like this:

… After were directed from our Routes which look like this:

Controller

If you don’t wanna bother yourself trying to retrieve the data into your templates yet, you could simple check from your DB if the data was committed in the formatted way you expected, like so:

This has been a quick one.

I’ll be sharing a complete tutorial on my experience so far in building a simple Survey App in Laravel with y’all before the end of next week.