Laravel по-русски
      
      
    Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Установил sleeping owl, в доках написано
Конфигурация моделей SleepingOwl Admin должны быть расположены в директории bootstrapDirectory
создал папку bootstrapDirectory в app/Admin
там создаю файл Photo.php
в нем пишу следующее
<?php
Admin::model(App\Model\Photo::Photo);моя модель Photo находится в app/Model/Photo.php
там такой код
<?php namespace App\Model;
use SleepingOwl\Models\SleepingOwlModel;
use Illuminate\Database\Eloquent\Model;
class Photo extends SleepingOwlModel {
    protected $table = 'photo';
    protected $primaryKey = 'photo_id';
    public $timestamps = false;
    protected $fillable = [
        'photo_symbol_id',
        'photo_src',
        'photo_nationality_id',
        'photo_color_id',
        'photo_type_id',
        'photo_moderation_id'
    ];
    public function newUserUpload($save_path){
        $this->photo_src = $save_path;
        $this->photo_moderation_id = 2;
        $this->save();
    }
}при попытке запуска ловлю ошибку
Undefined class constant 'Photo'
Не в сети
bootstrapDirectory по умолчанию это 
app/admin/
То есть модель админки должна быть в app/Admin/Photo.php
Изменено iy_expert (17.10.2016 12:10:07)
Не в сети
bootstrapDirectory по умолчанию это
app/admin/
То есть модель админки должна быть в app/Admin/Photo.php
я регистрирую модель Photo, Добавляю туда
<?php
Admin::model(app\Model\Photo::class)->title('Фото')->with('photo_src')
    ->columns(function ()
    {
        Column::string('photo_src', 'Src');
    }) ->form(function()
    {
        FormItem::text('photo_src', 'photo_src');
    });когда пытаюсь обратиться к admin/photo
получаю
You need to provide valid action for this route.
Не в сети
А просто admin/ работает?
Попробуй admin/photos
Не в сети
А просто admin/ работает?
Попробуй admin/photos
просто admin/ работает
если пробую admin/photos получаю Class 'app\Model\Photo' not found
Не в сети
кстати ответ на первый вопрос темы был такой
нужно было поменять
App\Model\Photo::Photoна
App\Model\Photo::classНе в сети
А где написана версия совы или лары?
Как же Нам, Многоуважаемому Сообществу Вам Помогать, если Вы, Многоуважаемые Вопрошатели не хотите сообщать деталей?
Страны для совы с поддержкой локализаций.
app\Admin\Country.php
<?php
use App\Model\Country;
use SleepingOwl\Admin\Model\ModelConfiguration;
AdminSection::registerModel( Country::class, function ( ModelConfiguration $model )
{
	$model->setTitle( 'Countries' );
	$model->onDisplay( function ()
	{
		$display = AdminDisplay::datatables()->setHtmlAttribute( 'class', 'table-primary table-hover' );
		$display->setColumns(
			AdminColumn::text( 'country_id' )->setLabel( 'Country ID' )->setWidth( '100px' )->setHtmlAttribute( 'class', 'text-right' ),
			AdminColumn::link( 'title' )->setLabel( 'Title' )
		)->paginate( 10 );
		return $display;
	} );
	$model->onCreateAndEdit( function ( $id = null )
	{
		$panel = AdminForm::panel()
			->addBody(
				AdminFormElement::text( 'title', 'Country' )->required(),
				AdminFormElement::text( 'country_id', 'Country ID for «' . \App::getLocale() . '» Locale' )->required(),
				AdminFormElement::hidden( 'lang' )->required()->setDefaultValue(\App::getLocale())
			)
		;
		$panel ->getButtons()->hideDeleteButton();
		return $panel ;
	} );
} );app\Model\Country.php
<?php
namespace App\Model;
use App\Scopes\LangScope;
use Illuminate\Database\Eloquent\Model;
class Country extends Model
{
	protected $fillable     = [ 'country_id', 'title', 'lang', ];
	public    $incrementing = false;
	public    $timestamps   = false;
	protected $primaryKey   = 'country_id';
	/**
	 * The "booting" method of the model.
	 *
	 * @return void
	 */
	protected static function boot()
	{
		parent::boot();
		static::addGlobalScope( new LangScope );
	}
}app\Scopes\LangScope.php
<?php
namespace App\Scopes;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class LangScope implements Scope
{
	public function apply( Builder $builder, Model $model )
	{
		$builder->where( 'lang', '=', \App::getLocale() );
	}
}в итоге у каждого языка интерфейса проекта (будь то locale = en или ru
Будет свой сет Списка стран на языке того интерфейса, что активен в данный момент.
Всё относительно лары 5.3 и совы 4.0
Не в сети
Страницы 1