Laravel 4, Eloquent: Check if there is a Model with certain key-value pair in a Collection

Published 2013-10-17, 16:47

I wanted to find out if there already is a Model with a certain value for a certain column in a Collection that I retrieved realier in my code, e.g. is there already a User with name = Müller in my $users Collection?

$users->contains() can only check if there is a model with a certain primary key, and there also is no method to trivially search through all Models. Of course this all could be hacked together somehow*, but after a bit of searching I found this nice way to solve my question:

$value = 'Müller';
$key = 'name';
if(in_array($value, $users->lists($key))) { ... }

Collection->lists() gets an array with all the values of the Model for the requested key. Checking if our new value is in there, is super simple.

*Of course I first tried it this way:

  1. use $collection->filter() and then count the result
  2. hack $collection->contains() +$collection->find() to accept a field name as a parameter
  3. see 2, but copy the methods as private methods to my controller instead of tinkering with the framework code directly

All 3 solutions worked, but needed lots of ugly code.

PHP Frameworks

Published 2013-10-02, 11:16

As I’m getting back into working with PHP more hands-on I spent some time to look around to build this small overview of PHP frameworks. I seperated them into 3 groups: Most popular, Others and Obscure / Ancient / Dead.

Google Trends graphes

To be able to assess the popularity, these simple Google Trend charts may help:

The „old guys“


(WTH happened in October 2009?)

The „new guys“ (+ ZF for comparison)

Please note, that many people probably only search for „Zend“ to find Zend Framework.

Others

Obscure / Ancient / Dead

Sources

 

Performance-Optimierung am Beispiel: betamode.de

Published 2012-03-22, 20:07

Ich habe mich ein wenig mit Performance Optimierung von Webseiten beschäftigt. In den nächsten Tagen und Wochen werde ich einige Beiträge dazu veröffentlichen. Den Anfang macht diese Beschreibung des Optimierungsvorgangs von betamode.de:

Beispielseiten für Optimierung

Ausgangssituation

Erste Beobachtungen und Auswertung

Optimierung

Anwendbare Regeln aus High Performance Website Sites:

Rule 1 – Make Fewer HTTP Requests

Folgende Bilder können zusammengefasst werden:

Schritte:

Ergebnis

Rule 3 – Add an Expires Header

Mit W3 Total Cache lässt sich sich das wunderbar erschlagen.

Ergebnis

Rule 6 – Put Scripts at the Bottom

Das Analytics-Script ist zwar schon ganz unten, aber noch das alte synchrone. Also mal das neue besorgen und einbauen.

Ergebnis

Rule 10 – Minify JavaScript (+ HTML + CSS)

Javascript gibt es keines, aber für Minify von HTML und CSS kann einfach W3 Total Cache konfiguriert werden, fertig.

Ergebnis

Dann zum Abschluss noch ein bisschen serverseitiges Caching um DB-Anfragen und so weiter zu minimieren mit W3 Total Cache.

End-Ergebnis

Tadaa, schnell.

Google-Wunsch-Funktion: Timestamp-Umrechnung

Published 2007-03-07, 17:52

Ich gebe einen Timestamp ein, Google gibt mir ein korrektes Datum zurück.
Ich gebe Google „timestamp:“ und Datum, Google gibt mir den Timestamp zurück.

Das wäre doch mal ein nützliches Feature.

Know your enemy: XSS, SQL Injection etc.

Published 2007-02-27, 01:51

Auch wenn Betamode nun wohl absolut zum Linkblog verkommt:

http://www.honeynet.org/papers/webapp/

Automatisierte MySQL-Backups auf mehreren Servern: phpMyBackupPro

Published 2007-02-25, 16:11

http://www.phpmybackuppro.net/

wordwrap

Published 2006-12-17, 14:38

PHP-Funktion, die man kennen muss: wordwrap()

StudiVZ: Ich studiere an der Array

Published 2006-11-08, 18:20

Hochschule: Array

Immer wieder lustig…

(Array)

Nachtrag: Da mittlerweile von einigen Blogs auf diesen Beitrag verlinkt wird möchte ich doch gerne klarstellen, dass ich hier keineswegs nur auf StudiVZ draufhauen möchte und diesen Beitrag als Fehlerreport an die Jungs hinter StudiVZ gesendet habe. Konstruktive Kritik statt Neid-Blabla…

CommentsTrack light: x-ter Versuch

Published 2006-09-14, 14:33

Fast 1 Jahr hat sich bei meiner kleinen Idee CommentsTrack light nichts mehr getan. In den letzten Tagen habe ich jedoch wieder verstärkt in Kommentarthreads mitgeschrieben, die ich durchaus nochmal anschauen und bei denen ich auf Antworten reagieren wollte.

Cocomment, co.mments und Co funktionieren weiterhin nur mit Firefox oder Internet Explorer mit Bookmarkleiste, da mein Feedreader of choise jedoch IE als Anzeigecontainer nutzt und eben keine Bookmarkleiste einblendet kommen diese Service alle nicht in Frage.

Also altes Script hervorgeholt, abgestaubt, ein wenig aufgemöbelt und wieder eingebaut. Ergebnis; Meine letzten 10 getrackten Kommentare:

< ?php include("commentstrack_10.php"); ?>

Fehlt nur noch ein Modul, das sich den Seitentitel des Beitrags abholt und eine Erweiterung, die zählt, wie oft ich in dem Thread kommentiert habe. Aber das sind ja Kleinigkeiten.

PHP: Trinitäts-Operator

Published 2006-09-11, 00:54

oder: Diese komischen Dinger mit Doppelpunkten, die ich noch nie kapiert habe…

Das kommt davon, wenn man sich PHP über learning by doing aneignet, logisch, auf jeden Fall konnte ich lange Zeit mit folgendem Code nicht wirklich etwas anfangen:

echo $success ? ‚+‘ : ‚-‚;

Es ging auch ohne.

Auf phpbar bin ich nun über eine vernünftige Erklärung gestolpert: http://www.phpbar.de/w/Trinit%C3%A4ts-Operator

18 queries. 0,207 seconds.