Привет Мировой пример в MVC приближается к [закрытому] PHP

Необходимо получить объекты, к которым присоединяются, в набор и затем применить DefaultIfEmpty как сказанный JPunyon:

Person magnus = new Person { Name = "Hedlund, Magnus" };
Person terry = new Person { Name = "Adams, Terry" };
Person charlotte = new Person { Name = "Weiss, Charlotte" };

Pet barley = new Pet { Name = "Barley", Owner = terry };
List<Person> people = new List<Person> { magnus, terry, charlotte };
List<Pet> pets = new List<Pet>{barley};

var results =
    from person in people
    join pet in pets on person.Name equals pet.Owner.Name into ownedPets
    from ownedPet in ownedPets.DefaultIfEmpty(new Pet())
    orderby person.Name
    select new { OwnerName = person.Name, ownedPet.Name };


foreach (var item in results)
{
    Console.WriteLine(
        String.Format("{0,-25} has {1}", item.OwnerName, item.Name ) );
}

Выводы:

Adams, Terry              has Barley
Hedlund, Magnus           has
Weiss, Charlotte          has
15
задан Geoffrey Hale 24 April 2015 в 00:54
поделиться

3 ответа

Вот какой-то MVC "Hello, World":

Модель

function get_users() {
    return array(
        'Foo',
        'Bar',
        'Baz',
    );
}

Представление

function users_template($users) {
    $html = '<ul>';

    foreach ($users as $user) {
        $html .= "<li>$user</li>";
    }

    $html .= '</ul>';

    return $html;
}

Контроллер

function list_users() {
    $users = get_users();

    echo users_template($users);
}

Основная идея состоит в том, чтобы отделить доступ к данным (модель) от представления данных (представление). Контроллер должен делать не больше, чем просто соединять их вместе.

34
ответ дан 1 December 2019 в 00:18
поделиться

Вот самый простой пример. Ваш файл index.php является контроллером, получает некоторые данные из модели, а затем включает HTML через файл представления.

/* index.php?section=articles&id=3 */

// includes functions for getting data from database
include 'model.php';

$section = $_GET['section'];
$id = $_GET['id'];

switch ( $section )
{
    case 'articles':
        $article = getArticle( $id );
        include 'article.view.php';
}

.

/* article.view.php */

<html>
<head>
<title><?=$article['title']?></title>
</head>

<body>

<h1><?=$article['title']?></h1>
<p><?=$article['intro']?></p>
<?=$article['content']?>

</body>
</html>
11
ответ дан 1 December 2019 в 00:18
поделиться

QuickStart Zend Framework - неплохой пример «простого приложения» (не «Hello World», но не более того - и использование MVC для приложения «Hello World» немного похоже на использование ядерной бомбы для уничтожения ошибки) , на основе Zend Framework и с использованием MVC.

После, если вы хотите пойти немного дальше, вы можете взглянуть на электронную книгу Survive The Deep End! - работа все еще продолжается, но все равно интересно читать.

Это с ZF; Полагаю, вы можете найти то же самое с другими MVC Framework, такими как Symfony или CakePHP.

6
ответ дан 1 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: