Автор оригинала: David Wong.
Оригинальная статья была опубликована на моем личном сайте: Серия вводных руководств Laravel 5 (4) [ Наиболее подходящий для китайских народных уроков по Laravel]
См.: https://github.com/johnlui/Learn-Laravel-5 для примера кода для этого урока
Все застревают где угодно. Самое быстрое решение-посмотреть мой пример кода.
На этом заканчивается эта серия учебных пособий. Вместе мы добавим комментарии на Страницу, чтобы посетители могли просматривать, отправлять и отвечать на комментарии на главной странице. В то же время мы улучшим функцию управления комментариями в фоновом режиме, которые можно удалять и редактировать. Страница и комментарии будут использовать соотношение “один ко многим”, предоставленное Eloquent. В конечном счете, мы получим прототип системы личного блога и назначим вам большое домашнее задание для практики в реальном бою.
1. Первое знакомство с Красноречивым
Laravel Красноречивый ORM является очень важной частью Laravel и одной из причин, по которой Laravel так популярен. Китайские документы в:
- http://|/laravel -china.org/docs/5.0/eloquent http://|/laravel
- -china.org/docs/5.0/eloquent
Изучите laravel 5/приложение/Страница. php-это красноречивый класс моделей, который был создан в предыдущем уроке:
php
Для дальнейшего понимания Eloquent я рекомендую прочитать серию статей: Глубокое понимание Laravel Eloquent.
2. Создание Модели Комментариев
Во-первых, нам нужно создать новую таблицу для хранения комментариев, которая запускается в командной строке.
bashphp artisan make:model Comment
После успешного завершения, соответствующее расположение файла миграции learnlaravel5/база данных/миграции/***_create_comments_table.php изменяется следующим образом:
phpSchema::create('comments', function(Blueprint $table)
{
$table->increments('id');
$table->string('nickname');
$table->string('email')->nullable();
$table->string('website')->nullable();
$table->text('content')->nullable();
$table->integer('page_id');
$table->timestamps();
});
Тогда беги:
bashphp artisan migrate
Загляните в базу данных. Таблица комментариев лежит там.
3. Установление отношений “один ко многим”
Измените модель страницы:
phphasMany('App\Comment', 'page_id', 'id');
}
}
Вот как просто разобраться в отношениях между моделями в красноречивом.
Китайские документы для Межмодельных отношений: http://laravel-China.org/docs/5.0/eloquent#relationships
Расширенное чтение: Глубокое понимание Laravel Eloquent (3) – Взаимосвязи между моделями (Ассоциации)
4. Функция подачи документов на стойке регистрации
Изменить Модель Комментариев:
php
Добавьте одну строку маршрутизации:
phpRoute::post('comment/store', '[email protected]');
Выполните следующую команду, чтобы создать контроллер CommentsController:
phpphp artisan make:controller CommentsController
Изменить контроллер Комментариев:
php withInput () - > withErrors ('Comments failed! ).
}
}
}Измените представление learnlaravel5/resources/views/pages/show.blade.php:
php@extends('_layouts.default')
@section('content')
Return to Home Page
{{ $page->title }}
{{ $page->updated_at }}
{{ $page->body }}
Функция комментариев на стойке регистрации завершена.
Просмотр эффекта:
5. Функция фонового управления
Измените базовый вид learnlaravel5/resources/views/app.blade.php следующим образом:
php
Laravel
@yield('content')
Измените фоновую группу маршрутизации (добавьте строку):
phpRoute::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'auth'], function()
{
Route::get('/', '[email protected]');
Route::resource('pages', 'PagesController');
Route::resource('comments', 'CommentsController');
});
Создать Контроллер комментариев Администратора:
bashphp artisan make:controller Admin/CommentsController
Контроллер администратора/комментариев имеет четыре интерфейса для просмотра всех, отдельных, публикации изменений и удаления:
phpwithComments(Comment::all());
}
public function edit($id)
{
return view('admin.comments.edit')->withComment(Comment::find($id));
}
public function update(Request $request, $id)
{
$this->validate($request, [
'nickname' => 'required',
'content' => 'required',
]);
if (Comment::where('id', $id)->update(Input::except(['_method', '_token']))) {
return Redirect::to('admin/comments');
} else {
Redirect:: back () - > withInput () - > withErrors ('Update failed! ).
}
}
public function destroy($id)
{
$comment = Comment::find($id);
$comment->delete();
return Redirect::to('admin/comments');
}
}Затем создайте два представления:
learnlaravel5/resources/views/admin/comments/index.blade.php:
php@extends('app')
@section('content')
management review
Content
User
Page
edit
Delete
@foreach ($comments as $comment)
{{ $comment->content }}
@if ($comment->website)
{{ $comment->nickname }}
@else
{{ $comment->nickname }}
@endif
{{ $comment->email }}
{{ App\Page::find($comment->page_id)->title }}
edit
@endforeach
@endsectionlearnlaravel5/resources/views/admin/comments/edit.blade.php:
php@extends('app')
@section('content')
editorial comments
@if (count($errors) > 0)
Whoops! There were some problems with your input.
@foreach ($errors->all() as $error)
- {{ $error }}
@endforeach
@endif
@endsectionФункция управления фоном завершена для проверки эффекта:
6. основные задания
Функция комментариев, основанная на Странице, была завершена, и родился прототип системы личного блога. В конце этой серии назначьте большое задание: Создайте передний план и фон статьи, добавьте взаимосвязь “один ко многим” между статьей и вычислениями, а также добавьте функции комментариев и управления комментариями. 。 В процессе выполнения этого важного задания вы будете неоднократно возвращаться к предыдущему учебнику, неоднократно читать китайские документы и внимательно читать мой код. Когда вы закончите большое задание, Laravel 5 действительно начнет работу.~~
Учебное пособие (4) Снимок кода: https://github.com/johnlui/Learn-Laravel-5/archive/tutorial_4.zip
Это конец серии вводных уроков Laravel 5, которые больше всего подходят для китайцев. Спасибо!
Оригинал: “https://developpaper.com/laravel-5-series-of-introductory-tutorials-4-lavel-tutorials-most-suitable-for-chinese-people-end/”
@foreach ($errors->all() as $error)- {{ $error }}
@endforeach
{{ $comment->nickname }}
@else{{ $comment->nickname }}
@endif{{ $comment->created_at }}
{{ $comment->content }}