Laravel по-русски

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

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

#51 Laravel 4 » перестали работать миграции » 15.02.2015 22:13:29

schel4ok
Ответов: 7

в какой-то момент команда >php artisan migrate стала выдавать такую ошибку

{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class '' not found","file":"D:\\OpenServer\\domains\\schel4ok.dev\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Migrations\\Migrator.php","line":301}}

на этот случай в документации есть ответ
Note: If you receive a "class not found" error when running migrations, try running the composer dump-autoload command.

делаю >composer dump-autoload
получаю Generating autoload files

потом опять >php artisan migrate - и та же самая ошибка

#52 Re: Laravel 4 » Laravel-Excel » 12.02.2015 15:24:47

я попробовал импортировать файл прямо в routes.php и в результате на странице получил крякозябры

Route::get('xls', function ()  
{
  Excel::load('app/database/xls/categories.xlsx', function($reader)
  {
   $result=$reader->select(array('id', 'parent_id','level','title','sef','body',
  	'image','meta_title','keywords','description'))->get();

   var_dump($result);

  })->get();

  
 }
	);

#54 Re: Laravel 4 » Request::is не работает » 24.01.2015 19:49:55

вот так

\views\template\topmenu.blade.php

<div class="topmenu">
    <ul class="nav menu nav-pills">
	{{ HTML::menu_active('fa fa-newspaper-o','/',' Новости') }}
	{{ HTML::menu_active('fa fa-sitemap','pages/1',' Карта сайта') }}
	{{ HTML::menu_active('fa fa-user','pages/2',' Админка') }}
	{{ HTML::menu_active('fa fa-question','pages/3',' FAQ') }}
	{{ HTML::menu_active('fa fa-globe','pages/4',' Ссылки') }}
    </ul>
</div>

#55 Laravel 4 » заполнение БД из xlsx файла » 24.01.2015 16:01:18

schel4ok
Ответов: 3

здравствуйте,

Я хочу сделать заполнение БД из xlsx файла.
Нашел пакет maatwebsite/excel, но вообще не могу понять как им пользоваться.

кто-нибудь использовал этот пакет?

#56 Re: Laravel 4 » Request::is не работает » 24.01.2015 15:56:14

решил проблему, убрав первый слеш в остальных пунктах меню

#57 Re: Laravel 4 » Какое Relationships использовать? » 24.01.2015 14:23:05

надо вообще все эти таблицы объединить в одну и добавить таблицу юзеров и языков

        Schema::create('articles', function($table)
        {
            $table->increments('id');
            $table->string('source');                
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users');
            $table->integer('lang_id')->unsigned();
      	    $table->foreign('lang_id')->references('id')->on('langs');
            $table->text('title');                         
            $table->text('content');                    
            $table->text('content_hide');                         
            $table->timestamps();
        });



        Schema::create('users', function($table)
        {
            $table->increments('id');
            $table->varchar('name');            
            $table->varchar('email');            

        });


        Schema::create('langs', function($table)
        {
            $table->increments('id');
            $table->varchar('lang');                  
        });

и еще добавить связи в моделях User, Lang и Article

#58 Re: Laravel 4 » Request::is не работает » 24.01.2015 11:07:18

еще видел в буржунете вариант URI::is вместо Request::is
это выдает ошибку Class 'URI' not found

#59 Laravel 4 » Request::is не работает » 24.01.2015 11:04:27

schel4ok
Ответов: 4

пытаюсь сделать динамический класс active состояния меню, но класс active присваивается только пункту меню со ссылкой на главную страницу /
а остальные всегда неактивные


app\macros.php

HTML::macro('menu_active', function($class,$route,$name)
{
    if(Request::is($route . '/*') OR Request::is($route))
    {
        $active ='<li class="active"><a class="'.$class.'" href="'.URL::to($route).'">'.$name.'</a></li>';
    }
    else
    {
        $active ='<li><a class="'.$class.'" href="'.URL::to($route).'">'.$name.'</a></li>';
    }
    return $active;
});

\views\template\topmenu.blade.php

<div class="topmenu">
    <ul class="nav menu nav-pills">
	{{ HTML::menu_active('fa fa-newspaper-o','/',' Новости') }}
	{{ HTML::menu_active('fa fa-sitemap','/pages/1',' Карта сайта') }}
	{{ HTML::menu_active('fa fa-user','/pages/2',' Админка') }}
	{{ HTML::menu_active('fa fa-question','/pages/3',' FAQ') }}
	{{ HTML::menu_active('fa fa-globe','/pages/4',' Ссылки') }}
    </ul>
</div>

\views\template\template.blade.php

@include('template.topmenu')

#61 Laravel 4 » не доступны локальные файлы стилей и картинок » 10.01.2015 15:21:21

schel4ok
Ответов: 2

если использую файлы стилей с интернета, то все в порядке {{ HTML::style('//maxcdn.bootstrapcdn.com/bootswatch/3.3.1/readable/bootstrap.min.css') }}

а локальные файлы стилей на загружаются  {{ HTML::style('public/css/frontend.css') }}

проверил исходный код страницы
<link media="all" type="text/css" rel="stylesheet" href="http://schel4ok.dev/public/css/frontend.css">

сам файл существует и не пустой, но если ввести в браузер адрес http://schel4ok.dev/public/css/frontend.css, то выдается ошибка
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

при вызове в браузере директории css тоже ошибка

и если пробую ввести путь к картинке ошибка
http://schel4ok.dev/public/img/pages/co … ster-z.jpg


это что надо маршруты настраивать для доступа к файлам?

#62 Re: Laravel 4 » не работают eloquent relations » 05.01.2015 00:43:42

супер совет. лучше вообще не писать, чем так

#63 Re: Laravel 4 » не работают eloquent relations » 03.01.2015 00:20:17

погуглил и вот тут нашел такую же проблему  http://forumsarchive.laravel.io/viewtopic.php?id=3889

пару советов из этой темы реально помогли

вот этот код помог выводить всю строку из БД при вызове {{ $post->user }}

	public function user()
	{
		return $this->belongsTo('User', 'id');
	}

но при вызове {{ $post->user->name }} всё равно ошибка Trying to get property of non-object (View: ...\app\views\post\showall.blade.php)


от этой ошибки почему-то спасает такой код

@if($post->user)
{{ $post->user->name }}
@endif

И сразу выводится имя юзера. Вот тут я вообще не понимаю. Код остался тот же самый. Просто добавилась проверка существования объекта.

Кто-нибудь понимает смысл этой операции?

#64 Laravel 4 » не работают eloquent relations » 02.01.2015 23:21:30

schel4ok
Ответов: 3

вот в этом видео чувак рассказывает про самую простую связь таблиц  http://www.youtube.com/watch?v=xIBST5vV … 39Y1tKl5DB

я сделал все так же как он рассказал

\model\Post.php

class Post extends Eloquent {

	public function user()
	{
		return $this->belongsTo('User');
	}
}



\views\post\showall.blade.php

@extends('template.template')

@section('content')

	@if(isset($posts) && count($posts))

		@foreach ($posts as $post)
			<section>
				<a href="posts/{{ $post->id }}"><h3>{{ $post->title }}</h3></a>
				<img src="{{ $post->image }}" alt="{{ $post->title }}" style="float:left;" />
				<p>{{ Str::limit($post->body, 50) }}</p>
				<p><a href="#">{{ $post->user }}</a></p>
				<section style="clear:both;"></section>
			</section>
		
		@endforeach
	
	@else
	<p>Нет записей в блоге</p>
	@endif
	<?php echo $posts->links(); ?>

@stop

Такой вариант у чувака в видео выводил целую строку из таблицы users.
У меня он выводит пустое место 

<p><a href="#"> </a></p>

Дальше он усложнил {{ $post->user->name }} и получил имя автора.
А у меня такой код привел к ошибке
Trying to get property of non-object (View: ...\app\views\post\showall.blade.php)


Таблица users у меня есть. В ней 2 юзера. В таблице постов проставлены id этих юзеров.



\app\database\migrations\2014_12_31_184209_create_posts_table.php

class CreatePostsTable extends Migration {

	public function up()
	{
		Schema::create('posts', function($table)
		{
			$table->increments('id')->unsigned();
			$table->integer('category_id')->unsigned();
			$table->foreign('category_id')->references('id')->on('categories');
			$table->string('sef', 50);
			$table->string('title', 150);
			$table->text('body');
			$table->string('image', 300);
			$table->integer('author')->unsigned();
			$table->foreign('author')->references('id')->on('users');
			$table->boolean('active', 100);
			$table->string('meta_title', 50);
			$table->string('keywords', 150);
			$table->string('description', 150);
			$table->timestamps();
		});

	}

\app\database\migrations\2014_12_20_085806_create_users_table.php

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {

public function up() {
  Schema::create('users', function ($table) {
    $table->increments('id');
    $table->string('email')->unique();
    $table->string('name');
    $table->timestamps();
  });
}

#65 Re: Laravel 4 » как сделать блог с категориями » 29.12.2014 18:17:57

я пытался найти примеры блогов на laravel
но видимо я вбивал не тот запрос, потому что мне попадались только самые простые блоги вообще без категорий

#67 Laravel 4 » как сделать блог с категориями » 28.12.2014 10:56:08

schel4ok
Ответов: 4

сделал простой блог на ларавел 4.

хочу добавить в него категории для каждой статьи.
хочу сделать примерно так:


Route::get('/posts', 'PostController@categories');   -   при вызове главной страницы блога должен строиться список категорий и статьи, принадлежащие корневой категории
Route::get('/posts/{category?}', 'PostController@category');   -   при вызове одной из категории блога должен строиться список её подкатегорий и страниц
Route::get('/posts/{category?}/{id?}', 'PostController@getPost'); - ссылка на отдельную страницу блога (пока сделал только это)


основные вопросы:
1) как в контроллере сделать ссылку на список категорий
2) куда в БД засунуть поле "категория"? Прямо в таблицу с постами или в отдельную таблицу?

#71 Re: Laravel 4 » Как получить данные при любом роуте. » 21.12.2014 00:03:29

ну а как поместить в эту переменную одну строку из таблицы БД?
метод all() вытягивает сразу все строки таблицы

#72 Re: Laravel 4 » отображение данных из БД » 20.12.2014 23:58:44

а как сделать, чтобы для каждой страницы из БД вытягивались description, keywords и title?

  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html">
    <title>{{ $content->title }}</title>
    <meta name="description" content="{{ $content->description }}">
    <meta name="keywords" content="{{ $content->keywords }}">
    <meta name="robots" content="index,follow">
    <meta name="author" content="schel4ok">
  </head>

#74 Laravel 4 » отображение данных из БД » 20.12.2014 13:27:31

schel4ok
Ответов: 3

начинаю осваивать laravel

попробовал сделать пробный пример отображения данных из таблицы users, описанный вот тут  http://laravel.ru/docs/v4/quick
всё нормально получилось.

потом по аналогии попробовал сделать отображение данных из своей другой таблицы connectors
1) скопировал существующую таблицу из другой БД

2) создал файл app\models\Connectors.php
<?php
class Connectors extends Eloquent {
    protected $table = 'connectors';
}


3) создал файл app\views\connectors.blade.php
@extends('layout')

@section('content')

<table>
  @foreach ($connectors as $connector)
  <tr><td>{{ $connector->id }}</td> <td>{{ $connector->title }}</td> <td>{{ $connector->description }}</td></tr>
  @endforeach
</table>

@stop




4) в файле routes.php добавил маршрут

Route::get('connectors', function () {
  $connectors = Connector::all();
  return View::make('connectors')->with('connectors', $connectors);
});



но почему-то ничего не заработало

#75 Re: Laravel 4 » Как получить данные при любом роуте. » 17.12.2014 11:06:52

можешь подробно написать как ты сделал?
я тоже хочу так сделать, но не могу разобраться как

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