2015-12-03 7 views
1

Привет Я новичок в Laravel и это мое первое приложениеНевозможно обновить в Laravel

Я получаю сообщение об ошибке: Вызов неопределенной метод StdClass :: сохранить()

Это мой модальное под кодовым названием песни. PHP:

<?php namespace App; 

use Illuminate\Database\Eloquent\Model as Eloquent; 

class Song extends Eloquent{ 
    protected $table = 'songs'; 
    protected $fillable = ['title']; 
} 

И это мой код контроллера с именем PageController.php:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Foundation\Bus\DispatchesJobs; 
use Illuminate\Routing\Controller as BaseController; 
use Illuminate\Foundation\Validation\ValidatesRequests; 
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; 
use Illuminate\Http\Request; 
use App\Song; 
use DB; 

abstract class Controller extends BaseController 
{ 
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests; 
} 

class PageController extends Controller{ 
public function update($slug, Request $request){ 
     //dd(\Request::input()); 
     $song_name = DB::table('songs')->whereSlug($slug)->first(); /***songs is a table name ****/ 
     $song_name->title = $request->get('title'); 
     $song_name->save(); 
     return redirect('slug'.$song_name->slug.'/edit'); 
     //return "Update page"; 
    } 
} 

Но я Я получает ошибки Зова неопределенного метода StdClass :: сохранить() на моем PageController моего DataTable имя песня

+1

, если вы хотите использовать метод сохранения(), вам нужно использовать красноречивым не построитель запросов http://laravel.com/docs/5.0/eloquent# insert-update-delete –

ответ

3

Вы используете DB фасад, чтобы получить песни из базы данных - вот почему вы получаете результаты в качестве объекта StdClass , Вместо этого используйте методы модели Eloquent, и вы получите объекты Песня класс.

Заменить

$song_name = DB::table('songs')->whereSlug($slug)->first(); 

с

$song_name = Song::whereSlug($slug)->first(); 
+0

Спасибо, что это сработало. Пожалуйста, объясните мне, что Song :: whereSlug ($ slug) -> first(); Песня в ней - это имя calss, которое я использовал в моей модели –

+0

http://laravel.com/docs/5.1/eloquent –

Смежные вопросы