Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 5.x » Обработка исключений » 22.03.2015 22:50:16

marikSafinatir
Ответов: 0

При остутствии страницы(например, в блоге 20 страниц, а запрашивается 21ая) нужно заменить соощение ModelNotFoundException своим произвольным. В контроллере:
public function getPost($id)
<code>   
    {
        $id = (int)$id;
        $post = Post::get($id);
        if ($post instanceof Exception)
            {return 'error';}
        else
            {return view('showPost')->with('post',$post);
        }
</code>

                      В модели:
<code>
public static function get($id)
    {
        try{
            $post = Post::where('id', '=', $id )-> firstOrFail();
            return $post;
        }
        catch (Exception $e)
        {
            return $e;
        }
    }
</code>
Однако замены на своё сообщение не происходит, остаётся стандартная надпись:
ModelNotFoundException in Builder.php line 151:
No query results for model [App\Post].

В чем проблема?

#2 Re: Laravel 5.x » Не работает хелпер HTML » 22.03.2015 18:49:31

Извиняюсь, все работает, нужно просто учесть регистр класса. Правильно:
<code> {!! Html::style('css/main.css') !!} </code>

#3 Laravel 5.x » Не работает хелпер HTML » 22.03.2015 15:24:08

marikSafinatir
Ответов: 1

В composer.json добавил в раздел "require":
<code>"illuminate/html": "5.*"</code>
Запустил composer update. Illuminate/html установился

Далее, делаю все как пишут:
добавляю в app.php
<code> 'Illuminate\Html\HtmlServiceProvider', </code>
в массив 'providers'
<code>
'Html'      => 'Illuminate\Html\HtmlFacade',
'Form'      => 'Illuminate\Html\FormFacade',
</code>
в массив 'aliases'

В шаблоне blade подключаю стиль:
{!! HTML::style('css/main.css') !!}

Однако, класс HTML не найден. Подскажите, в чем проблема?

#4 Re: Laravel 5.x » И снова сидинг » 19.03.2015 22:17:10

Уфф спасибо. Однако, плюс ко всему класс нашей новой модели должен расширять класс Model, а не Eloquent. Только так сработало)

#5 Laravel 5.x » И снова сидинг » 19.03.2015 20:40:26

marikSafinatir
Ответов: 3

Вопрос аналогичный вышеупомянутому. composer dump-autoload сделал, теперь класс PostsSeeder вроде как видит. Однако теперь при команде php artisan db:seed - класс Post не найден

<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class PostsSeeder extends Seeder {

	/**
	 * Run the database seeds.
	 *
	 * @return void
	 */
	public function run()
	{
		$faker = Faker\factory::create();
		
		
		Post::create(
		[
			'title'=>$faker->sentence(2),
			'body'=>$faker->paragraph(20),	
			'author'=>$faker->name	
		]
		);
		
	}

}

Как быть теперь? Модель Post.php создана композером.

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Eloquent {


}

Подвал раздела