58. Crear nuevo Post
6 comentarios
Inicia sesión para comentar
Comentarios:
-
Mis Soporte hace 1 año
Que paso con la tabla taggables del video mucho a muchos polimorfica?
-
Walter hace 1 año
? 5° Configuración del método store del controlador PostController
public function store(StorePostRequest $request) { $post = Post::create($request->all()); if($request->tags){ $post->tags()->attach($request->tags); } return redirect()->route('admin.posts.edit', $post); }
-
Walter hace 1 año
? 4° Habilitación de la asignación masiva en el modelo Post
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Post extends Model { use HasFactory; protected $guarded = ['id', 'created_at', 'updated_at']; public function user() { return $this->belongsTo(User::class); } public function category() { return $this->belongsTo(Category::class); } public function tags() { return $this->belongsToMany(Tag::class); } public function image() { return $this->morphOne(Image::class, 'imageable'); } }
-
Walter hace 1 año
? 3° Configuración del controlador PostController
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Post; use App\Models\Category; use App\Models\Tag; use App\Http\Requests\StorePostRequest; class PostController extends Controller { public function index() { return view('admin.posts.index'); } public function create() { $categories = Category::pluck('name', 'id'); $tags = Tag::all(); return view('admin.posts.create', compact('categories', 'tags')); } public function store(StorePostRequest $request) { return "Las validaciones pasaron con éxito!"; } public function show(Post $post) { return view('admin.posts.show', compact('post')); } public function edit(Post $post) {} public function update(Request $request, Post $post) {} public function destroy(Post $post) {} }
-
Walter hace 1 año
? 2° Reglas de validación con Form Request
php artisan make:request StorePostRequest
Esta ejecución crea la carpeta Request en app/Http/ y dentro el archivo StorePostRequest.php:
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class StorePostRequest extends FormRequest { public function authorize() { if($this->user_id == auth()->user()->id) { return true; } return false; } public function rules() { $rules = [ 'name' => 'required', 'slug' => 'required|unique:posts', 'status' => 'required|in:1,2' ]; if($this->status == 2) { $rules = array_merge($rules, [ 'category_id' => 'required', 'tags' => 'required', 'extract' => 'required', 'body' => 'required' ]); } return $rules; } }
-
Walter hace 1 año
? 1° Actualizamos la migración de posts
$table->text('extract')->nullable(); $table->longText('body')->nullable();
Luego volvemos a ejecutar:
php artisan migrate:fresh --seed