Ich habe die Laravel package for the Wordpress JSON REST API verwendet und es funktioniert gut. Ich möchte meine Blogposts in meiner Datenbank speichern. Ich benutzte phpMyAdmin
genannt einen Tisch idybrand_laravel
SQLSTATE [HY000] [2002] Verbindung verweigert mit Laravel beim Versuch, Daten in die Datenbank zu schreiben
ich eine Datei app/blogpost
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class blogpost extends Model
{
//
}
und jetzt erstellt hinzufügen in meinem BlogController
Ich versuche, einen einfachen Test, wollen Daten zu speichern, in nur 3
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use WpApi;
use App\blogpost;
use Carbon\Carbon;
class BlogController extends Controller
{
public function getPosts()
{
foreach (WpApi::posts() as $post) {
$this->createPost($post);
}
//return view('pages.blog', ['active'=>'navBlog'])->with('posts', WpApi::posts());
}
protected function createPost($data)
{
$post = new blogpost();
$post->id = $post['id']; // integer
$post->wp_id = $post['id']; // integer
$post->link = $post['link']; //string
$post->save();
return $post;
}
}
ich nichtgeändertund meine .env
Datei sieht wie folgt aus:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=idybrand_laravel
DB_USERNAME=idybrand_dave
DB_PASSWORD=myPassword
Der Fehler, den ich erhalten ist:
QueryException in Connection.php line 770: SQLSTATE[HY000] [2002] Connection refused (SQL: insert into
Blogeinträge (
id ,
,
Link ,
updated_at ,
created_at ) values (, , , 2017-02-17 10:21:57, 2017-02-17 10:21:57))
Sie wp_id Ich brauche einen Code zu schreiben wie init
oder save
innerhalb app/blogpost
? Kann mir jemand sagen, warum die Verbindung verweigert wird? Ich verwende localhost
, da mein Projekt in der Entwicklung nicht Produktion ist.
EDIT:
Nach etwas Hilfe von den Jungs im Chat einschließlich davejal, bin ich jetzt in der Lage mit dem Server zu verbinden, sowohl über die Befehlszeile in O X:
$ mysql -u idybrand_dave -pMY_PASSWORD -h 181.224.130.159 idybrand_laravel
UND mit Sequel Pro ohne Problem. Aber ich immer noch die gleichen Fehler in Laravel bei der Verwendung dieser exakt gleichen Einstellungen in meiner .env
Datei zu verbinden versuchen:
DB_CONNECTION=mysql
DB_HOST=181.224.130.159 //Siteground IP Address
DB_PORT=3306
DB_DATABASE=idybrand_laravel
DB_USERNAME=idybrand_dave
DB_PASSWORD=MY_PASSWORD
Ich habe auch versucht, mein Modell zu bearbeiten, wie von Sona vorgeschlagen, aber es hilft nicht:
class blogpost extends Model
{
protected $table = 'blogposts';
protected $fillable = array('id', 'wp_id', 'link', 'title', 'author_code', 'content', 'created_at', 'updated_at');
}
Kann jemand bitte Licht auf diesen Fehler werfen?
FINAL EDIT:
hatte ich ein grundsätzliches Missverständnis, dass ich dachte, ich localhost ‚local‘ Entwicklungsumgebung nutzen könnte Daten in eine Tabelle zu schreiben, die auf dem Server (Siteground) in der ‚Produktion existiert ' Umgebung.
Sobald ich die Laravel Database Getting Started lesen und these three Videos von Mindspace sah, wurde alles klar. Im Grunde brauchte ich eine Serverumgebung, die lokal ausgeführt wird, und dies wird von Vagrant und VMWare Fusion bereitgestellt.
Nach dem Einrichten konnte ich auf http://idy.app/
im Browser zugreifen, während homestead-7 VM
ausgeführt wurde und in die Datenbank schreiben.
Meine .env
Datei:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=33060
DB_DATABASE=idy
DB_USERNAME=homestead
DB_PASSWORD=secret
I davejal Antwort akzeptiert haben, wie es mir zur Lösung führen.
in Blogpost Modell Sie ausfüllbare Spalten hinzufügen müssen versuchen, diese .. – Sona
@Sona Beifall - ich –
protected $ ausfüllbare werde versuchen = [ ‚fname‘, ‚lname‘]; wie diese .. Anzeige Ihre Spaltennamen – Sona