firstOrCreate takes two parameters
https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Builder.php#L370
first parameter is the attributes to search for. Second is the attributes to set.
So, I'm trying to learn Lumen and decided to use an old project of mine (a cinema website) as a way of doing so.
I'm trying to check if a movie exists by using the firstOrCreate method as seen here
public function saveMovie(Request $request){
$movie = [];
foreach ($request->all() as $request) {
$movie = Movie::firstOrCreate($request);
}
return response()->json($movie);
}
But this is always inserting a new row in the database, even if the data recieved through postman (data is sent as JSON) is exactly the same
The schema for the Movies table is as follows
Schema::create('movies', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('content');
$table->integer('rating');
$table->timestamps();
});
I have a feeling I'm doing something wrong, but I've searched for a few hours now, on multiple sites. Without result...
The body of the request contains the following JSON:
[{
"rating": 8,
"title": "Avengers: Infinity War",
"content": "Vier jaar na de gebeurtenissen uit 'Guardians of the Galaxy Vol. 2' slaan Peter Quill en consorten de handen in elkaar om samen met de Avengers een nieuw gevaar tegen te gaan. Een gevaar in de gedaante van de gestoorde titaan Thanos die alle zes Infinity Stones, artefacten met onvoorstelbare krachten, wil verzamelen voor een gauntlet. Deze zullen hem toestaan overal zijn wil op te leggen. Het lot van de aarde en van het bestaan zelf is nog nooit zo onzeker geweest."
}, {
"rating": 5,
"title": "Rampage: Big Meets Bigger",
"content": "'Rampage' draait om een heroïsche primatoloog wiens beste vriend een zeldzame albino silverback gorilla is genaamd George. Maar wanneer een experimenteel serum verkeerd uitpakt beginnen George en andere wezens enorm te groeien, erop uit om alles om hen heen te vernietigen... Davis Okoye gaat er samen met een genetische wetenschapper achteraan om hen te stoppen."
},{
"rating": 3,
"title": "Red Sparrow",
"content": "Ballerina Dominika Egorova staat voor een sombere en onzekere toekomst nadat ze een blessure heeft opgelopen die haar carrière beëindigt. Ze wendt zich al snel tot Sparrow School, een geheime inlichtingendienst die buitengewone jonge mensen opleidt om hun geest en lichamen als wapens te gebruiken. Egorova komt naar voren als de gevaarlijkste Sparrow na het voltooien van het sadistische trainingsproces. Terwijl ze haar nieuwe vaardigheden onder de knie krijgt, ontmoet Dominika een CIA-agent die haar probeert te overtuigen dat hij de enige persoon is die ze kan vertrouwen."
}, {
"rating": 3,
"title": "Game Night",
"content": "'Game Night' volgt een groep met koppels die zich verzamelen om een aantal spelletjes te spelen, iets wat ze geregeld doen. Hun bijeenkomst verloopt echter anders dan ze zouden denken. Wanneer iemand komt te overlijden, en iedereen denkt dat het om een moord gaat, zullen ze samen moeten werken en zien te achterhalen wie de dader is."
}
]
Please or to participate in this conversation.