2017-02-03 2 views
1
$user = $this->user; 
      $user->name = $request['name']; 
      $user->email = $request['email']; 
      $user->password = $request['password']; 
      $user->save(); 

$name = explode(' ' ,$user->name); 

$profile= $user->userdetail()->create([ 
       'user_id' => $request->input('id'), 
       'first_name' => <the value of the first exploded string> 
'last_name' => the value of the secondexploded string 
       ]); 

      return redirect('confirmation'); 
     } 

Wie zwei Wörter mit explode-Funktion in PHP teilen? Zum Beispiel habe ich mich mit dem Namen von JOHN DOE registriert, den ich in meiner Benutzerdetail-Tabelle den ersten Namen von John und last_name von doe erstellen möchte. Wie kann ich es tun/wie man php explodieren in Laravel verwendet?

+0

Mögliche Duplikat [PHP explodieren Funktion] (http://stackoverflow.com/questions/1932505/php-explode-function) –

+0

die – d3cypher

+0

Andere Antworten anders sind genau – d3cypher

Antwort

2

explode() gibt ein Array von Strings, so dass Sie Elemente mithilfe von Tasten zugreifen können:

$profile = $user->userdetail()->create([ 
       'user_id' => $request->input('id'), 
       'first_name' => $name[0], 
       'last_name' => $name[1] 
      ]); 
+0

Was passiert, wenn der Benutzer einen Namen eingibt, wie Antonio da Silva? das sind 3 worte wie soll ich das durchgehen? – d3cypher

+0

Was ist, wenn der Benutzer einen Namen wie Antonio da Silva eingibt? das sind 3 worte wie soll ich das durchgehen? – d3cypher

1

Sie können den folgenden Code

$first_name = "John Doe"; 
$name = explode(' ',$full_name); 
$first_name = $name[0]; 
$last_name = $name[1]; 
+0

Danke mein Freund :) – d3cypher

1

Alternative Art und Weise verwenden:

<?php 

    $ip = "fname lname"; 
    $iparr = preg_split("/[\s,]+/",$ip); 
    echo "$iparr[0]"; 
    echo "$iparr[1]"; 

?> 

Aber explodieren ist gut (schneller) als preg_split. ;)